【问题标题】:python module not found after executing shell script even though the module is installed即使安装了模块,执行 shell 脚本后也找不到 python 模块
【发布时间】:2021-10-22 06:35:06
【问题描述】:
pip3 list
Package             Version
------------------- ------------
apipkg              1.5
apparmor            3.0.3
appdirs             1.4.4
asn1crypto          1.4.0
brotlipy            0.7.0
certifi             2021.5.30
cffi                1.14.6
chardet             4.0.0
cmdln               2.0.0
configobj           5.0.6
createrepo-c        0.17.3
cryptography        3.3.2
cssselect           1.1.0
cupshelpers         1.0
cycler              0.10.0
decorator           5.0.9
idna                3.2
iniconfig           0.0.0
isc                 2.0
joblib              1.0.1
kiwisolver          1.3.1
LibAppArmor         3.0.3
lxml                4.6.3
matplotlib          3.4.3
mysqlclient         2.0.3
nftables            0.1
notify2             0.3.1
numpy               1.21.1
opi                 2.1.1
ordered-set         3.1.1
packaging           20.9
pandas              1.3.1
Pillow              8.3.1
pip                 20.2.4
ply                 3.11
psutil              5.8.0
py                  1.10.0
pyasn1              0.4.8
pycairo             1.20.1
pycparser           2.20
pycups              2.0.1
pycurl              7.43.0.6
PyGObject           3.40.1
pyOpenSSL           20.0.1
pyparsing           2.4.7
pysmbc              1.0.23
PySocks             1.7.1
python-dateutil     2.8.2
python-linux-procfs 0.6
pytz                2021.1
pyudev              0.22.0
requests            2.25.1
rpm                 4.16.1.3
scikit-learn        0.24.2
scipy               1.7.1
setuptools          57.4.0
six                 1.16.0
sklearn             0.0
slip                0.6.5
slip.dbus           0.6.5
termcolor           1.1.0
threadpoolctl       2.2.0
torch               1.9.0+cu111
torchaudio          0.9.0
torchvision         0.10.0+cu111
tqdm                4.62.1
typing-extensions   3.10.0.0
urllib3             1.26.6

上面显示了我安装的模块,但是当我进入项目文件夹并运行 shell 脚本时,我得到:

    Traceback (most recent call last):
  File "main.py", line 3, in <module>
    import torch
ImportError: No module named torch

尽管在上面的列表中它清楚地表明安装了torch。

请帮忙。我的$PATH/usr/bin/python:/home/anthony/bin:/usr/local/bin:/usr/bin:/bin:/snap/bin

而我的 printenv PYTHONPATH 是 :/usr/bin/python

如果您需要任何其他打印输出,请告诉我,我已经尝试了所有方法,但似乎没有任何效果。我主要在pycharm工作。

【问题讨论】:

  • 请更新完整的回溯。你确定你没有使用 Python 2 运行你的脚本吗?
  • 你是如何运行脚本的?你确定你使用的是同一个解释器吗?许多 IDE(包括 PyCharm)默认为每个项目创建一个虚拟环境。
  • torch 是否列在 PyCharm 中的“设置”>“项目”>“Python 解释器”下?如果没有,您只为系统解释器安装了torch。您没有为 PyCharm 使用的解释器安装它。虚拟环境默认不继承系统包。
  • @Berriel 我可以,但我该如何改变呢?

标签: python python-3.x pytorch


【解决方案1】:

pip3 很可能指向不同的 python 实例。

假设您的系统上安装了pythonpython3python3.6python3.8pip3 会为哪一个安装软件包? (谁知道?)

使用python3.8 -m pip list/install 几乎总是更安全,因为您可以确定python3.8 somefile.py 将使用您刚刚看到的相同文件。 (更好的是,先做python3.8 -m venv /path/to/some/virtualenv,然后确保它被激活,然后你就可以确定pip指向同一个python

【讨论】:

  • 当我运行 `python3.8 -m pip list' 时显示了上面相同的列表。我将我的项目 venv 添加到使用上面的行,我是否必须重新安装模块?有没有办法删除所有其他模块,这样我就不会到处重复了?
  • 如果您使用了python3.8 -m pip list ...您是否使用python3.8 来运行您的脚本?
  • 最佳实践是复制依赖项,将您的项目分开。 Pip 会缓存下载的文件并对其进行处理,但如果你顺其自然,你的生活会更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 2020-01-17
  • 2019-10-02
相关资源
最近更新 更多