【问题标题】:conda environment pip is trying to install dependencies globallyconda 环境 pip 正在尝试全局安装依赖项
【发布时间】:2017-11-17 01:29:54
【问题描述】:

不知何故,我的 Python/Conda/Pip 安装是这样的,即使在活动的 conda 环境中运行时,pip 也会尝试安装到全局站点包目录。

在运行 10.12.4 的 macbook pro 上,我可以通过以下方式重现:

  1. 创建 conda 环境:$conda create -n test python=3.6
  2. 激活 conda 环境:$source activate test
  3. 验证 pip 命令是否引用了正确的 pip 二进制文件: $which pip /Users/ethankeller/anaconda3/envs/test/bin/pip
  4. 使用 pip 安装任何包 - 例如 numpy: $pip install numpy Collecting numpy Using cached numpy-1.13.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl Installing collected packages: numpy Exception: Traceback (most recent call last): File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/commands/install.py", line 342, in run prefix=options.prefix_path, File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/req/req_set.py", line 784, in install **kwargs File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/req/req_install.py", line 851, in install self.move_wheel_files(self.source_dir, root=root, prefix=prefix) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files isolated=self.isolated, File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/wheel.py", line 345, in move_wheel_files clobber(source, lib_dir, True) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/wheel.py", line 316, in clobber ensure_dir(destdir) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/site-packages/pip/utils/__init__.py", line 83, in ensure_dir os.makedirs(path) File "/Users/ethankeller/anaconda3/envs/test/lib/python3.6/os.py", line 220, in makedirs mkdir(name, mode) PermissionError: [Errno 13] Permission denied: '/lib/python3.6/site-packages/numpy'

我想某些环境变量以某种方式设置错误......关于可能出现什么问题或从哪里开始查找的任何建议?

【问题讨论】:

    标签: python pip conda


    【解决方案1】:

    苦苦挣扎了一阵子,我很愿意把这个问题弄清楚,所以我搜索了一段时间,才想通,测试了一下。

    当您通过指定 python 版本创建新的 conda env 时,它将使用 conda_root_python 版本。如果你没有安装 pip 包,并尝试在你创建的 conda 环境下使用 pip,它只会运行 conda_root_pip 并将包安装在根 site_packages 中。

    我知道在您创建的 conda 环境中安装 python 包的三种方法。 为了更好地解释,我们创建了一个 conda env 与 conda 根环境的相同 python 版本。

    conda create -n myenv python
    

    我。其中一位官员建议,使用 conda 命令为指定的 conda 环境安装软件包,

    conda install -n myenv tensorflow
    

    二。另一个官方建议,进入您指定的环境并运行 conda install

    source activate myenv
    conda install tensorflow
    

    在以上两种方式中,您不需要安装额外的包,如 pip 和其他 pip 相关包。

    三。对于真正想要 pip 的人来说,只是因为习惯了它。 安装 pip 包(就像上面两种方法一样)。

    conda install -n myenv pip
    

    source active myenv
    conda install pip
    

    然后在您的环境中进行 pip 安装

    pip install tensorflow
    

    【讨论】:

      【解决方案2】:

      要全局安装它,您可以使用 “sudo pip install numpy”

      避免使用 sudo 来为自己省去很多麻烦。 sudo 将“全局”安装 Python 包,并可能覆盖现有安装,导致依赖错误并影响其他用户。尽可能使用 virtualenv,否则 pip install --user,这将在当前用户中安装包

      pip install numpy --user
      

      【讨论】:

        猜你喜欢
        • 2021-11-22
        • 2021-10-05
        • 2020-01-09
        • 2017-04-18
        • 2020-04-01
        • 1970-01-01
        • 2014-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多