Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 在MinGW中指定多个PYTHONPATH值_Python 2.7_Mingw_Mingw W64 - Fatal编程技术网

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”