Python 2.7 在MinGW中指定多个PYTHONPATH值
假设我有一个打印系统路径的文件(Python 2.7 在MinGW中指定多个PYTHONPATH值,python-2.7,mingw,mingw-w64,Python 2.7,Mingw,Mingw W64,假设我有一个打印系统路径的文件(foo.py): # from path.to.folder import foo # from another.path.to.folder import bar import sys for p in sys.path: print(p) 我的问题是,如果您取消对import语句的注释,并通过MingW64(在我的例子中是Git-Bash)运行文件,Python将无法正确定位模块,从而产生ImportError 运行带有注释掉的导入的文件会产生以
foo.py
):
# from path.to.folder import foo
# from another.path.to.folder import bar
import sys
for p in sys.path:
print(p)
我的问题是,如果您取消对import
语句的注释,并通过MingW64(在我的例子中是Git-Bash)运行文件,Python将无法正确定位模块,从而产生ImportError
运行带有注释掉的导入的文件会产生以下输出:
user@host MINGW64 /
$ export PYTHONPATH="C:\path\to\folder:C:\another\path\to\folder"
$ python foo.py
C:\some\path
C:\path\to\folder:C:\another\path\to\folder
C:\Windows\system32\python27.zip
C:\Python\2.7.12\DLLs
C:\Python\2.7.12\lib
C:\Python\2.7.12\lib\plat-win
C:\Python\2.7.12\lib\lib-tk
C:\Python\2.7.12
问题似乎是MinGW没有将导出PYTHONPATH=“C:\path\to\folder:C:\other\path\to\folder”解释为两个独立的路径。它向Python传递一条格式错误的路径,Python不知道如何处理它
MinGW的文档似乎没有涵盖这个场景,但我认为这是一个非常常见的用例
如何在MinGW中设置PYTHONPATH
环境变量,使其向Python发送两条路径 事实证明,该报告确实涵盖了这种情况:
包含一个参数的参数;被视为Windows路径列表,不进行转换
将中间冒号转换为分号可以解决此问题:
导出PYTHONPATH=“C:\path\to\folder;C:\other\path\to\folder”