Anaconda3 Prompt执行Python命令路径正确但运行程序路径错误求助
Anaconda环境模块无法导入问题排查
作为Python和计算机科学新手,我正卡在Anaconda3环境下程序找不到已安装模块的问题上,为此写了TestPy.py文件来排查:
import sys; print(sys.path) # When printing path in Anaconda Prompt: # '' # 'C:\\Users\\evana\\anaconda3\\envs\\bulk\\python39.zip' # 'C:\\Users\\evana\\anaconda3\\envs\\bulk\\DLLs' # 'C:\\Users\\evana\\anaconda3\\envs\\bulk\\lib' # 'C:\\Users\\evana\\anaconda3\\envs\\bulk' # 'C:\\Users\\evana\\anaconda3\\envs\\bulk\\lib\\site-packages' # When printing path in Program: # 'C:\\Users\\evana\\Documents\\MyPrograms\\Python' <- directory of TestPy.py # 'C:\\Python311\\python311.zip' # 'C:\\Python311\\Lib' # 'C:\\Python311\\DLLs' # 'C:\\Python311' # 'C:\\Python311\\Lib\\site-packages'
我对比了Anaconda3 Python控制台和直接运行TestPy.py时的sys.path输出,明显路径指向不同——控制台用的是Anaconda的bulk虚拟环境路径,而程序用的是系统安装的Python3.11路径,这应该就是程序找不到Anaconda模块的原因。
我试过把bulk环境的路径按顺序添加到系统环境变量里,强制程序优先检查该环境的模块,而且添加时用的是单个反斜杠,但即使通过Anaconda Prompt运行程序,问题依然存在。
这个问题在Anaconda的base环境里也一样:运行程序时打印的路径还是指向系统Python3.11,但Anaconda Prompt里base环境的sys.path是这样的:
'' 'C:\\Users\\evana\\anaconda3\\python39.zip' 'C:\\Users\\evana\\anaconda3\\DLLs' 'C:\\Users\\evana\\anaconda3\\lib' 'C:\\Users\\evana\\anaconda3' 'C:\\Users\\evana\\anaconda3\\lib\\site-packages' 'C:\\Users\\evana\\anaconda3\\lib\\site-packages\\win32' 'C:\\Users\\evana\\anaconda3\\lib\\site-packages\\win32\\lib' 'C:\\Users\\evana\\anaconda3\\lib\\site-packages\\Pythonwin'
Anaconda官网提到系统安装的Python可能会造成干扰,但我不敢删除已安装的Python3.11或者修改它的系统路径。另外我用MSYS2装了C++编译器,路径是C:\msys64\mingw64\bin,推测对应Python3.10,但程序打印的路径全是Python3.11的,所以应该不是MSYS2的问题。
可以提供更多必要信息,求解决办法!
内容的提问来源于stack exchange,提问作者Evan Abbott
相关产品推荐
相关产品推荐

