所以我想用Pythion在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
的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“没有名为paramiko的模块”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28991319/