脚本无法导入已安装的包,但解释器可以

2024-10-04 11:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Windows 10和Python 3.4.3、Powershell和干净的venv:

PS C:\Users\nward\MyEnvDirectory .\Scripts\Activate.ps1
(MyScriptVenv) PS C:\Users\nward\MyEnvDirectory pip install Package
[...] Success!

我可以验证C:\Users\nward\MyEnvDirectory\Lib\site-packages\Package是否存在并且看起来很好。在

^{pr2}$

所以,这是有效的。但是,如果我尝试运行同一行,例如从同一目录下的.py文件中运行“import Package”,如下所示- (MyScriptEnv) PS C:\Users\nward\MyEnvDirectory .\main.py-然后我得到一个ImportError: No module named 'Package'。在

根据我所读到的,这通常是由于路径错误、阴影或混合版本的Python造成的。python --version提供{},我不相信我安装了其他版本。我不认为这是由于阴影,因为我的脚本文件和包有不同的名称。所以这一定是因为路径问题,但我不明白这是什么,因为解释器显然对路径没有问题!这个问题Installed Python script cannot import package modules似乎正是我的问题,但它是由阴影/目录结构问题引起的。我也读过,这可能是一个权限问题(例如,一个提升的解释器,但是一个低权限的执行shell),但是在这种情况下权限是可以的。在

有人对我下一步该去哪里有什么建议吗?这是一个非常基本的问题,我肯定我只是误解了一些东西,但我有点困惑。谢谢!在


Tags: 文件pyimport路径版本目录权限package
1条回答
网友
1楼 · 发布于 2024-10-04 11:30:07

似乎当您在虚拟环境中使用-

PS C:\Users\nward\MyEnvDirectory python

当你从virtualv上运行python脚本时-

^{pr2}$

它在virtualenv之外获取python,因为当您直接运行该文件时,windows将获取为.py文件注册的python可执行文件。您可以尝试以-

python main.py

在虚拟世界里。

相关问题 更多 >