通过 pip 安装 pysftp 失败(因为 2 个 python2.x 版本?)

问题描述 投票:0回答:2

我的 Ubuntu 10.04 附带了 Python 2.6。现在,我还安装了 Python 2.7,这是现在的系统默认设置,因为当我从终端启动

python
时,它会启动 python 2.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 之前安装的)链接到不支持 pysftp 的旧版本 Python。也因为当我做

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 pip version pysftp
2个回答
0
投票

您需要为 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

有时较旧的 Linux 安装会出现上述命令的问题,这是由于在通过

setuptools
下载完整的
ez_setup.py
包时遇到“无效”证书(有关更多详细信息,请参见此处)。这可以用这个替代的一次性命令来规避:

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

-1
投票

我认为您需要使用代码安装某种“必需品包”

sudo apt-get install build-essential libssl-dev libffi-dev python-dev

然后就可以安装了:

sudo pip install pysftp
sudo pip install enum
© www.soinside.com 2019 - 2024. All rights reserved.