【问题标题】:Two versions of python on linux. How to install packages to specific version of python?linux上的两个python版本。如何将软件包安装到特定版本的python?
【发布时间】:2015-09-27 20:30:10
【问题描述】:

我正在使用 Linux CentOs 服务器。在我的服务器中安装了两个版本的 python - 2.6 和 2.7。两个路径都输入到路径变量中。

我正在尝试使用以下命令安装 pip:

> sudo yum install python-pip 

但它安装到 python2.6 (/usr/bin/python)。因此,如果我尝试使用 pip 将软件包安装到 python,它会转到 python2.6。例如

> pip install XlsxWriter

首先我想将 pip 安装到 python2.7 版本,然后必须安装一些包。 python2.7的路径是/usr/local/bin/python2.7。如何管理不同版本 python 的包? (我不想更改我的默认 python 版本(2.6)。)

我的第二个问题是……我的项目需要 8 个 python 包。如何在一个命令中安装所有软件包? python中有没有类似package.json(用于nodejs)或composer.json(用于php)的概念?我听说过 setup.py,但我不清楚。这个 setup.py 的概念是不是和 package.json 类似?

【问题讨论】:

  • 对于第一个问题:我会手动下载并安装 pip,在执行安装程序时运行您想要的 python 版本。第二个问题:pip freeze > requirements.txt; pip install -r requirements.txt

标签: python linux python-2.7 centos pip


【解决方案1】:

如果你想控制你使用的 Python 版本,我建议考虑virtual environments

然后您可以为每个项目创建一个独立的虚拟环境并使用您需要的 Python 版本。

这将使用 Python 2.7 为您的项目创建一个虚拟环境,安装 <package> 并停用该虚拟环境。

cd my_project_folder
virtualenv -p /usr/bin/python2.7 venv
source venv/bin/activate
pip install <package>
deactivate

至于你的第二个问题,我推荐使用pip freezepip install -r...

首先,安装所有你需要的包:

source venv/bin/activate
pip install <package1>, <package2>,...

然后保存当前版本的包列表:

pip freeze > requirements.txt

这将创建一个requirements.txt 文件,您可以将其与项目一起分发。当有人想要安装所有依赖项时,他们需要这样做:

pip install -r requirements.txt

对于 Python 3,默认支持虚拟环境 - venv

【讨论】:

    【解决方案2】:

    假设你安装了两个python版本2.7和3.5,

    设置环境变量

    • python2设置为python2.7的环境变量
    • python 设置为 python3.5 的 evn 变量

    为 python2 安装包: python2 -m pip install

    为 python3 安装包: python -m pip install 要么 pip install

    【讨论】:

      【解决方案3】:

      试试which pip,选择你的点子

      然后简单地做sudo /path_to_your_version_of_pip/pip install你的模块

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-04
        • 1970-01-01
        • 2016-12-21
        • 2012-04-30
        • 2022-01-17
        • 2017-07-03
        相关资源
        最近更新 更多