所以我尝试在 Python 2.7 的 Ubuntu 上使用 Paramiko,但是导入 paramiko 导致了这个错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named paramiko
因为我是 Ubuntu 的新手,所以这个站点上的其他问题对我没有帮助。
以下是我用来检查内容的一些重要命令:
sudo pip install paramiko
pip install paramiko
sudo apt-get install python-paramiko
Paramiko 确实“安装”了。这些是我用来“安装”paramiko 的唯一命令。我是 Ubuntu 的新手,所以如果我需要运行更多命令,请交给我。
which python
/usr/local/bin/python
python -c "from pprint import pprint; import sys; pprint(sys.path);"
['',
'/usr/local/lib/python27.zip',
'/usr/local/lib/python2.7',
'/usr/local/lib/python2.7/plat-linux2',
'/usr/local/lib/python2.7/lib-tk',
'/usr/local/lib/python2.7/lib-old',
'/usr/local/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']
在 python 解释器中,我运行了 help("modules")
并且 Paramiko 不在列表中。
两个 paramiko 文件夹位于 usr/local/lib/python2.7/dist-packages
。
最佳答案
简短版本:您混合了 Ubuntu 的 Python 打包版本 (/usr/bin/python
) 和本地构建和安装的版本 (/usr/local/bin/python
)。
长版:
- 您使用
apt-get install python-paramiko
将 Ubuntu 的官方 Paramiko 软件包安装到/usr/lib/python2.7/dist-packages
。 - 您使用(我假设)Ubuntu 版本的
pip
,它安装到/usr/local/lib/python2.7/dist-packages
。 (参见 here。) - 您使用了本地构建的 Python 版本,因为它是本地构建的,所以它使用
/usr/local/lib/python2.7
而不是/usr/lib/python2.7
,并且因为它没有 Debian/Ubuntu 定制,所以它不检查使用dist-packages
。
解决方案:您应该能够将 /usr/local/lib/python2.7/dist-packages
添加到您的 /usr/local/bin/python
' s sys.path
,但由于您使用的是 Ubuntu,因此让 Ubuntu 为您完成工作是最简单的:
- 使用/usr/bin/python 而不是本地版本。
- 尽可能使用 Ubuntu 的软件包(即使用
apt-get
而不是pip
)。 - 其余的使用 virtualenv(以保持 Ubuntu 打包和个人安装的模块之间的清晰分离)。
我什至会卸载本地版本的 Python 并删除 /usr/local/lib/python2.7
,以确保不会再出现不匹配的情况。如果你不想那么激烈,那么你可以编辑你的 $PATH 把 /usr/bin
放在 /usr/local/bin
之前来运行系统版本默认情况下使用 Python。
关于python - Ubuntu Python "No module named paramiko",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28991319/