python - 为什么在 Windows 上使用 cmd 的 Python 会忽略 %PYTHONPATH%?

标签 python python-3.x windows

我在 Linux 上开发了一个 Python 包,它可以运行并且我的 pytest 成功了。 我正在使它与 Windows 兼容。 我说的是位于 'C:\import_path\my_package' 中的 'my_package' 我在虚拟环境的命令行中设置 PYTHONPATH,如下所示:

set PYTHONPATH="C:\import_path"
echo %PYTHONPATH%
"C:\import_path"

# Python script identifies this
print('PYTHONPATH = {}'.format(os.environ.get('PYTHONPATH')))
"C:\import_path"

但是,任何引用 my_package 的 Python 代码,当从已显式设置此 PYTHONPATH 的命令提示符运行时,将出错:

ModuleNotFoundError: No module named 'my_package'

但是,如果在系统环境变量中设置了 PYTHONPATH = C:\import_path,代码将运行良好。 它在 VSCode 中也运行良好:

"python.analysis.extraPaths": [
        "C:\\import_path"
    ]

为什么 python.exe 不读取在 cmd 中设置的 %PYTHONPATH% 变量,但 python.exe 会读取它当从 VSCode 或操作系统环境变量调试运行时?

最佳答案

很可能您正在从不同的 shell session 运行或调用不同的 shell session ,并且变量未解析到所有 session 。您可以尝试这样设置:

setx PYTHONPATH "C:\import_path" /M

设置变量时,如果您打算使用多个 session ,则应在系统范围内进行设置。

关于python - 为什么在 Windows 上使用 cmd 的 Python 会忽略 %PYTHONPATH%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65576891/

相关文章:

python - 如何使用 Python 和 ctypes 处理指向指针的指针

python - 有没有办法在嵌套 for 循环中访问生成器中每个元素的属性?

python - 无法在同一文件夹中导入模块

windows - Win - 你能一步创建一个隐藏文件夹吗?

python - glDrawElements 在 PyOpenGL 中绘制立方体

python - 我不明白冒号在 str.format 中的作用

python - 如何在python中使用opencv从sftp位置读取视频文件

python - 在python中循环访问字典的元素

c - 验证 Authenticode 签名是否来 self 们公司,用于自动更新程序

windows - 如何在 Windows 容器的 dockerfile 中设置系统路径?