无法导入模块-为什么sys.path找不到PYTHONPATH?
我正在Windows7机器上运行Python 3.6.1。我在无法导入模块-为什么sys.path找不到PYTHONPATH?,python,windows,python-import,Python,Windows,Python Import,我正在Windows7机器上运行Python 3.6.1。我在H:\Myname\Python\myscripts中有一些脚本 我已经创建了用户变量PYTHONPATH,并将其设置到上面的文件夹中。我没有管理员权限,因此只能创建用户变量 在该文件夹中,我有一个myscripts.py文件,其中包含一些函数 如果我试图通过运行import myscripts从存储在其他地方的文件访问它,它将不起作用:我得到一个modulenofounderror 如果我打印sys.path,我在PYTHONPAT
H:\Myname\Python\myscripts
中有一些脚本
我已经创建了用户变量PYTHONPATH,并将其设置到上面的文件夹中。我没有管理员权限,因此只能创建用户变量
在该文件夹中,我有一个myscripts.py文件,其中包含一些函数
如果我试图通过运行import myscripts
从存储在其他地方的文件访问它,它将不起作用:我得到一个modulenofounderror
如果我打印sys.path,我在PYTHONPATH中设置的文件夹就不存在了
为什么??我做错了什么?sys.path不应该显示PYTHONPATH吗?
H是网络驱动器这一事实与它有什么关系吗
我似乎在网上找不到任何与Windows相关的问题(但Unix系统有很多) 快速解决此问题的常用方法是使用
sys.path.append(“path/to/module”)
如果您使用的是Windows,请小心使用
'\\'
不完全回答您的问题,但这可以解决问题 可能有一个
\pth
文件覆盖了sys.path
的默认行为。删除或重命名python.\u pth
(或python36.\u pth
)文件
我的下载中包含一个python37.\u pth
文件,导致sys.path
不包含PYTHONPATH
要完全覆盖sys.path,请使用相同的
名称为DLL(python37.\u pth)或可执行文件(python.\u pth)和
为每个要添加到sys.path的路径指定一行。该文件基于
DLL名称将覆盖基于可执行文件的名称,这允许
如果需要,为加载运行时的任何程序限制的路径
当文件存在时,所有注册表和环境变量
已忽略,已启用隔离模式,并且不会导入站点,除非已启用隔离模式
文件中的第行指定导入站点
如果我运行sys.path.append('H:\Myname\Python\myscripts'),它会起作用-但我仍然不明白sys.path为什么不能识别PYTHONPATH检查您是否拼写错误,或者将-E作为PYTHONPATH的参数。另外,我不知道您是如何启动python的,但是如果您是从cmd启动python的,请确保在设置变量后启动一个新实例。如果您使用GUI环境变量编辑器或setx.exe设置了
PYTHONPATH
值,而没有通过内置的set
在当前cmdshell中设置它,然后需要从资源管理器中启动一个新的CMD实例。通常,只有浏览器更新其环境以响应WM\u SETTINGCHANGE
“环境”消息。CMD甚至没有获取此消息的窗口(控制台窗口不属于CMD或任何其他控制台应用程序;它是附加到它的)。