【问题标题】:pip for python3.7 (Ubuntu 16.04)python3.7的点子(Ubuntu 16.04)
【发布时间】:2019-02-04 00:42:15
【问题描述】:

我无法为 python 3.7 安装 pip。当我尝试在线搜索时,我发现一个解决方案是使用 get-pip.py 安装 pip。但是,它对我来说失败了:

sudo python3.7 get-pip.py
Traceback (most recent call last):
  File "get-pip.py", line 21373, in <module>
    main()
  File "get-pip.py", line 197, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip._internal
  File "/tmp/tmp3273u8va/pip.zip/pip/_internal/__init__.py", line 40, in <module>
  File "/tmp/tmp3273u8va/pip.zip/pip/_internal/cli/autocompletion.py", line 8, in <module>
  File "/tmp/tmp3273u8va/pip.zip/pip/_internal/cli/main_parser.py", line 12, in <module>
  File "/tmp/tmp3273u8va/pip.zip/pip/_internal/commands/__init__.py", line 6, in <module>
  File "/tmp/tmp3273u8va/pip.zip/pip/_internal/commands/completion.py", line 6, in <module>
  File "/tmp/tmp3273u8va/pip.zip/pip/_internal/cli/base_command.py", line 19, in <module>
  File "/tmp/tmp3273u8va/pip.zip/pip/_internal/download.py", line 37, in <module>
  File "/tmp/tmp3273u8va/pip.zip/pip/_internal/utils/glibc.py", line 3, in <module>
  File "/usr/local/lib/python3.7/ctypes/__init__.py", line 7, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'

现在,为了解决这个问题,我发现应该安装 libffi-dev 包。但是,我验证了这个包已经安装在我的系统上。我不知道我应该如何解决这个问题。有人可以帮忙吗?

sudo apt-get install libffi-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libffi-dev is already the newest version (3.2.1-4).
0 upgraded, 0 newly installed, 0 to remove and 50 not upgraded.

更新: 我按照步骤从https://serverfault.com/questions/918335/best-way-to-run-python-3-7-on-ubuntu-16-04-which-comes-with-python-3-5 安装 Python 3.7。另外,当我检查 pip3.7 安装时,我得到的输出为

$ pip3.7 --version
pip 19.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
$ sudo apt install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-pip is already the newest version (8.1.1-2ubuntu0.4).
0 upgraded, 0 newly installed, 0 to remove and 50 not upgraded.

但是当我执行我的程序时,我得到一个类似/usr/local/bin/python3.7: No module named pip的错误。

【问题讨论】:

  • 你是如何获得 python 3.7 的?如果你是从 python.org 安装的,那么你已经有了 pip。
  • 更新了问题以包含您所询问的上下文的更多详细信息。请查看更新。

标签: python python-3.x pip ubuntu-16.04


【解决方案1】:

实际上它要简单得多。 假设您的 Linux 是基于 Debian 的(例如,Ubuntu),您应该根据需要使用sudo apt install python3-pip 为 Python 3.x 安装 pip,或者使用sudo apt install python-pip 为 Python 2.x 安装 pip。

如果您的操作系统不是基于 debian,只需更改正在使用的包管理器(例如使用 yum 或 pacman 代替 apt)。

Here,您还可以找到在 Ubuntu 18.04 上安装 pip 的指南。

希望这会有所帮助!

【讨论】:

  • 这正是我尝试过的。我已经用更多细节更新了我的问题。好像我已经安装了pip,但是python3.7无法链接到它。
  • 没错,它返回python3-pip is already the newest version。但我的问题是python3.7无法识别pip并抛出错误,如我的更新中所述。
  • 嗯。有趣的。让我们试试sudo apt install --reinstall python3.7 python3-pip
  • 对不起,这可能是一个愚蠢的问题。当我尝试重新安装 python3.7 时,它说 `` E: Unable to locate package python3.7 E: Couldn't find any package by glob 'python3.7' E: Couldn't find any package by regex' python3.7'```。我需要先更新 repo 吗?
  • 所以,尼克建议从我使用的包(服务器故障链接)中重新安装 python3.7。当我重新安装它时,它工作了。
【解决方案2】:

我在 Ubuntu 16.04 中通过ppa (sudo add-apt-repository ppa:deadsnakes/ppa) 安装了python3.7(参见detailed instructions ppa installation Python3.7

对我来说,Nick Tritsis 的回答不起作用。安装pip的唯一方法是直接下载文件get-pip.py并在python 3.7上运行(根据method in the official site

python3.7 get-pip.py

但是,当我这样做时,我收到了一条错误消息

ERROR: Could not install packages due to an 
EnvironmentError: [Errno 13] Permission denied:

一个不推荐解决方案是使用sudo

sudo python3.7 get-pip.py

推荐解决方案

当像这样调用脚本时,可以只提供参数--user

  python3.7 get-pip.py --user

感谢@Matthew Strasiotto,他向我推荐了这个解决方案。

替代解决方案

这个替代解决方案是为了好玩;它比推荐的更复杂:我们可以在文件中添加选项--user

所以我们打开文件get-pip.py并更改给出命令参数的代码行:我们在其中添加了参数--user,使安装成为可能。

原行:

# Add our default arguments
 args = ["install", "--upgrade", "--force-reinstall"] + args

修改后的行:

# Add our default arguments
args = ["install", "--user", "--upgrade", "--force-reinstall"] + args

修改后python3.7 get-pip.py运行流畅。

【讨论】:

  • 这应该被接受,谢谢发帖!
  • 这对我不起作用。我收到此错误(如果我在不使用 --user 参数的情况下使用相同的错误):WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken通过'NewConnectionError(':无法建立新连接:[Errno -2]名称或服务未知')':/simple/pip/错误:无法找到满足要求 pip 的版本(来自版本:无)错误:没有找到 pip 的匹配分布
  • 注意:我在企业代理后面的 Ubuntu 16.04 上...非常感谢任何帮助。已经在应该是微不足道的事情上花费了大量时间。但这就是linux的世界。疼痛是默认设置
  • @objectNotFound 错误听起来很严重。如果是关于connection,它可能与--user 文件夹无关,而是与您的互联网(可能是防火墙?)有关——纯属猜测。我会为你祈祷,这是我唯一能做的;请报告任何成功。
  • 连接不是问题,因为 apt pkg manager 可以从 Internet 下载。任何人都使用这种方法解决了这个问题:askubuntu.com/a/880147/1100134 但现在我有新问题......无法使用相同的方法安装 pywinrm(即下载 tar 文件,提取并运行 setup.py)......正如我所说的痛苦来了在 Linux 世界中是标准和强制性的。很可能是最糟糕的操作系统平台。无论如何感谢您的帮助/祈祷。
猜你喜欢
  • 2017-03-08
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2018-11-09
  • 1970-01-01
相关资源
最近更新 更多