已经加上了绝对路径,在环境变量里面页配置了PYTHONPATH,仍然调用不到pyd文件
pyd文件就是从当前的环境已经转出来的,所以编译环境是一致的。
到底是什么问题呢,求解答。
你这个问题不太清晰,不确定你是完不成哪个操作,就你目前截图的这几行代码,只是简单的导入包的操作。
不确定和你使用的配置路径方法有没有关系
sys.path.append() 可以向 Python 的模块搜索路径中添加指定目录,从而让 Python 解释器能够搜索到这个目录下的模块。但是它并不能直接修改操作系统的环境变量,也不会影响其他应用程序的运行。
Python 模块搜索路径是由一组目录组成的列表,当我们在 Python 中导入一个模块时,Python 解释器会按照这个列表中的顺序依次搜索模块。而 sys.path.append() 方法可以向这个列表中添加一个新目录,使得 Python 解释器能够搜索到这个目录下的模块。
需要注意的是,sys.path 返回的是一个列表对象的引用,如果我们使用 append() 方法对其进行修改,那么这个列表对象本身会被改变,即会在列表末尾添加一个新元素,而操作系统的环境变量并不会随之改变。
可以再发详细一些,详细探讨一下
既然Python总是在sys.path
中的路径查找模块,那我们还可以通过PYTHONPATH
环境变量,来将路径添加到sys.path
中
还是以import桌面上的hello模块为例:
import hello
hello.hello()
直接import肯定还是ModuleNotFoundError
% python demo.py
Traceback (most recent call last):
File "/Users/zjx/PycharmProjects/LearnPython/Other/Python在哪里查找模块/demo.py", line 2, in <module>
import hello
通过export命令可以设置此次会话的环境变量
% export PYTHONPATH=/Users/zjx/Desktop
% python demo.py
hello from 桌面
改一下脚本,打印一下sys.path
% python demo.py
['/Users/zjx/PycharmProjects/LearnPython/Other/Python在哪里查找模块',
'/Users/zjx/Desktop', # 这里就是从PYTHONPATH中读取的路径
'/Library/Frameworks/Python.framework/Versions/3.9/lib/python39.zip',
'/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9',
'/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages']
hello from 桌面
如果想让PYTHONPATH
环境变量更加永久性地生效,可以配置用户或系统级别的环境变量。 比如Mac上的.bash_profile