我在Windows 7计算机上运行Python 3.6.1。我在H:\Myname\Python\myscripts
中有一些脚本。
我创建了用户变量PYTHONPATH并将其设置为上面的文件夹。我没有管理员权限,所以我只能创建一个用户变量。
在该文件夹中,我有一个带有一些函数的myscripts.py文件。
如果我尝试从存储在其他位置的文件中运行import myscripts
来访问它,那么它就不起作用:我得到ModuleNotFoundError
如果我打印sys.path,我在PYTHONPATH中设置的文件夹不存在。
为什么呢?我究竟做错了什么?是不是sys.path应该显示PYTHONPATH? H是网络驱动器的事实与它有什么关系吗?
我似乎无法在网上找到与Windows相关的任何问题(但对于Unix系统很多)。
答案 0 :(得分:1)
快速解决这个问题的常用方法是使用
sys.path.append("path/to/module")
如果您使用的是Windows,请注意'\\'
。
不完全回答你的问题,但这可以解决问题。
答案 1 :(得分:0)
很可能存在一个._pth
文件,它覆盖了sys.path
的默认行为。删除或重命名python._pth
(或python36._pth
)文件。
我下载的Windows embedded zip file中包含一个python37._pth
文件,导致sys.path
不包含PYTHONPATH
。
要完全覆盖sys.path,请使用相同的文件创建一个._pth文件。 名称为DLL(python37._pth)或可执行文件(python._pth),并 为每个路径指定一行以添加到sys.path。该文件基于 DLL名称会覆盖基于可执行文件的名称,从而允许 必要时,限制任何程序加载运行时的路径。
文件存在时,所有注册表和环境变量均为 忽略,启用隔离模式,并且除非一个站点不导入 文件中的一行指定导入站点。