无法导入模块-为什么sys.path找不到PYTHONPATH?

无法导入模块-为什么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

我正在Windows7机器上运行Python 3.6.1。我在
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或任何其他控制台应用程序;它是附加到它的)。