我的Ubuntu 10.04附带了Python 2.6。现在,我还安装了Python2.7,这是系统默认设置,因为当我从终端启动python
时,它会启动python2.7。
现在,我想使用pip安装库pysftp,但我很难做到。下面是我的一些尝试和结论。我做了pip install pysftp
,但上面写着:
Downloading/unpacking pysftp
Running setup.py egg_info for package pysftp
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/usr/local/lib/python2.6/dist-packages/setuptools/__init__.py", line 12, in <module>
from setuptools.extension import Extension
File "/usr/local/lib/python2.6/dist-packages/setuptools/extension.py", line 8, in <module>
from .dist import _get_unpatched
File "/usr/local/lib/python2.6/dist-packages/setuptools/dist.py", line 21, in <module>
packaging = pkg_resources.packaging
AttributeError: 'module' object has no attribute 'packaging'
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/usr/local/lib/python2.6/dist-packages/setuptools/__init__.py", line 12, in <module>
from setuptools.extension import Extension
File "/usr/local/lib/python2.6/dist-packages/setuptools/extension.py", line 8, in <module>
from .dist import _get_unpatched
File "/usr/local/lib/python2.6/dist-packages/setuptools/dist.py", line 21, in <module>
packaging = pkg_resources.packaging
AttributeError: 'module' object has no attribute 'packaging'
----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in ./pip-log.txt
在我看来,pip(显然是在安装Python 2.7之前安装的)链接到旧版本的Python,该版本不支持pysftp。还因为当我做pip --version
时,它说:
pip 0.3.1 from /usr/lib/python2.6/dist-packages (python 2.6)
当我执行whereis python
时,它会给我以下信息:
python: /usr/src/Python-2.7.10/python /usr/bin/python2.6 /usr/bin/python /etc/python2.6 /etc/python /usr/lib/python2.6 /usr/lib/python3.1 /usr/lib64/python2.6 /usr/lib64/python3.1 /usr/local/bin/python2.7-config /usr/local/bin/python /usr/local/bin/python2.7 /usr/local/lib/python2.6 /usr/local/lib/python2.7 /usr/include/python2.6 /usr/share/python /usr/share/man/man1/python.1.gz
如何安装pysftp?
您需要为Python 2.7重新安装pip
,然后运行pip2.7 install pysftp
。您需要为要与之一起使用的每个版本的Python安装pip
。setuptools
软件包可能是最简单的方法;你可以简单地运行以下操作,一下子完成所有操作:
wget https://bootstrap.pypa.io/ez_setup.py -O --no-check-certificate - | sudo python2.7 && sudo easy_install-2.7 pip && sudo pip2.7 install pysftp
有时,由于通过ez_setup.py
下载完整的setuptools
软件包时遇到"无效"证书,较旧的Linux安装程序会出现上述命令的问题(有关更多详细信息,请参阅此处)。这可以通过这个替代的一次突袭命令来规避:
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-18.8.1.zip --no-check-certificate && unzip setuptools-18.8.1.zip && cd setuptools-18.8.1 && sudo python setup.py install && sudo easy_install-2.7 pip && sudo pip2.7 install pysftp
我认为您需要使用代码安装某种"必需品包"
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
然后你可以安装:
sudo pip install pysftp
sudo pip install enum