【问题标题】:Pip install python package into a specific directory other than the default install locationPip 将 python 包安装到默认安装位置以外的特定目录中
【发布时间】:2013-06-17 11:45:22
【问题描述】:

pip 在我的 Ubuntu 系统上安装软件包的默认位置是“/usr/local/lib/pytho2.7/dist-packages/”,我认为这通常是默认位置。我正在使用 Enthought python 发行版(EPD 不是树冠)并且想将一个包安装到 EPD 中,因为我通常使用我系统上的 EPD 发行版中的 python。我想知道需要使用 pip 将新文件安装到 EPD 内的哪个目录中;因为 linux 上 EPD 的目录结构似乎与 MAC OS 上的 EPD 目录结构大不相同,因为那里似乎有很多示例。

我也遇到过这个:

pip install --install-option="--prefix=$PREFIX_PATH" package_name

作为类似问题的公认答案。我想知道 $PREFIX_PATH 环境变量的用途是什么,因为我的当前是空白的。以及我需要在 Ubuntu 上为我的 Enthought EPD 发行版指定什么路径来安装 python 模块。

对于这个相对幼稚的问题,我深表歉意,但我对 ubuntu 上的 EPD 还是很陌生,并且仍在尝试弄清楚。

【问题讨论】:

  • 你考虑过使用 virtualenv 吗?
  • 是的,但我想知道如何在不使用 virtualenv 的情况下做到这一点。
  • 这可能会有所帮助:stackoverflow.com/questions/2915471/…
  • 你需要用你想要的任何安装目录替换$PREFIX_PATH

标签: python ubuntu-12.04 pip enthought


【解决方案1】:

正如documentation 中提到的那样,这条线应该适用于所有人。

pip install package_name -t any/path/i/like

PS:

为了解决@CPiLL 的评论,any/path/i/like 实际上可以是任何东西,例如/tmp/my-test-env。以这种方式安装的软件包将可用于您通常的 python 环境,实际上它们甚至不会使用pip list 显示。 python -c "import package_name" 通常会因 ImportError 异常而失败,除非您先 cd 进入该文件夹:

cd /tmp/my-test-env
python -c "import package-name"

这项技术的用途超出了这个答案。

【讨论】:

  • error: must supply either home or prefix/exec-prefix -- not both
  • 我认为pip install X --user 是捷径
【解决方案2】:

系统:Ubuntu 12.04,Enthought Python Distribution(这是我想安装新 python 模块的地方)

所以 prefix_path 环境变量对我不起作用,pip 仍然继续将它安装在默认位置。但是我用 How do I change the default directory that pip installs to?

问题作为指导。其中一个答案帮助我实现了我所需要的。

 pip install -d <path_to_my_directory>  

对于我使用的路径: path_to_epd_directory/lib/python2.7/site-packages

这会将 tar.gz 文件放入站点包中

然后使用以下方法提取它:

tar -zxvf pymodule.tar.gz

创建了一个名为 pymodule 的目录,cd 到该模块并输入:

 python setup.py install

这应该可以完成工作。

【讨论】:

    【解决方案3】:

    您可以使用此代码将软件包安装到特定路径。

    pip install [package name] --target /path/to
    

    【讨论】:

    • 请考虑为您的代码添加注释。没有任何反馈的单个代码行是一个非常低质量的答案
    • 这与多年前的最佳答案相同。 -t 只是 --target 的简写。
    【解决方案4】:

    相反,您可以使用已安装到 EPD 安装中的 pip 的副本。

    $ path-to-EPD/bin/enpkg pip # Or simply enpkg pip, if EPD is on your PATH. 
    $ path-to-EPD/bin/pip install <package-name>
    

    【讨论】:

      【解决方案5】:

      这在 Ubuntu Gnome 17.04 上对我有用。 将 PyMySQL 安装到特定目录:

      sudo pip install PyMySQL -t /home/mahmoud/app
      

      【讨论】:

      • sudo pip install 永远不应该被使用。
      【解决方案6】:

      此答案在 Windows 操作系统中有效
      简答:要使用 -t 选项例如:pip install packageX -t lib/ 将软件包安装到特定文件夹,然后添加此文件夹到PYTHONPAHT

      长答案:

      1. 将virtualenv安装到.env文件夹

      2. 使用 -t 选项进行 pip 安装,示例安装到我的项目的 lib 文件夹(名为 3
        (.env) d:\tmp\3&gt;pip install packageX -t lib/

      3. 显示包列表:

          (.env) d:\tmp\3>pip list
          Package    Version
          ---------- ----------
          pip        18.1
          setuptools 40.6.3
          ...
      
      1. 没有看到您的包裹?以管理员权限打开命令提示符并设置 PYTHONPATH

      1. 现在新的命令提示符和激活环境会看到你的包

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-12
        • 2018-08-20
        • 1970-01-01
        • 2014-08-02
        相关资源
        最近更新 更多