Ubuntu Python"没有名为paramiko的模块"

Del*_*rdo 4 python import ubuntu paramiko

所以我试图在Ubuntu上使用Paramiko和Python 2.7,但是导入paramiko会导致这个错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named paramiko
Run Code Online (Sandbox Code Playgroud)

由于我是Ubuntu的新手,因此本网站上的其他问题对我没有帮助.

以下是我运行以检查内容的一些重要命令:

sudo pip install paramiko
pip install paramiko
sudo apt-get install python-paramiko
Run Code Online (Sandbox Code Playgroud)

帕拉米科做了"安装".这些是我用来"安装"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']
Run Code Online (Sandbox Code Playgroud)

在python解释器中,我跑了help("modules"),Paramiko不在列表中.

两个paramiko文件夹位于usr/local/lib/python2.7/dist-packages.

Jos*_*ley 11

简短版本:你正在混合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.(见这里.)
  • 您使用了本地构建的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的系统版本.