在 linux 上为非默认版本安装 python 模块

Posted

技术标签:

【中文标题】在 linux 上为非默认版本安装 python 模块【英文标题】:Install python module for non-default version on linux 【发布时间】:2014-09-29 11:48:47 【问题描述】:

我的 ubuntu 机器上安装了不同的 python 版本。默认版本为 2.7。

所以当我安装任何新的 python 模块时,例如使用:

#apt-get install python-nfqueue

它将仅针对默认版本 (2.7) 安装

如何为其他版本安装新模块? 有没有办法使用 apt-get install 来做到这一点?

谢谢!

【问题讨论】:

【参考方案1】:

您应该使用 Python 包安装程序 pip 安装 Python 库。

使用您要使用的 Python 版本创建一个 virtualenv,激活它,然后执行pip install NetfilterQueue。您仍然需要使用apt-get 安装系统依赖项(例如,在这种情况下为libnetfilter-queue-dev)。

【讨论】:

感谢您的回答。我仍然收到此错误:ImportError: /usr/local/lib/python3.4/dist-packages/netfilterqueue.cpython-34m.so: undefined symbol: PyString_FromStringAndSize【参考方案2】:

您可以安装 pip 以使用不同版本的 python。这是指向阅读文档页面的 pip 的链接(http://pip.readthedocs.org/en/latest/installing.html)。

将 pip 安装到您机器上的默认 python 版本:

python get-pip.py 

要安装非标准版本,请使用您希望安装的版本调用 python:

python33 get-pip.py 

然后您可以通过调用来为 python 3.3 版运行 pip

pip33 install pythonmodule

【讨论】:

以上是关于在 linux 上为非默认版本安装 python 模块的主要内容,如果未能解决你的问题,请参考以下文章

在 MacOS 上为系统范围的 Python 安装 OpenCV

在新的 FB API 上为非应用用户访问好友列表

在 Linux 上为 python3 安装 midi、midi_maniulation

如何在 linux 上为所有使用 pip 的用户安装模块?

如何在 anaconda 上为 python 安装 tesseract

如何在亚马逊 linux ami 上为 httpd 2.4 安装 xsendfile?