【问题标题】:how to pip install a package under conda virtual env如何在 conda 虚拟环境下 pip 安装包
【发布时间】:2019-09-02 19:34:48
【问题描述】:

我需要在conda虚拟环境下安装mpl_finance,这个包不能通过conda安装,只能pip安装。下面我试过了,还是不行,请指教。

我首先在user/miniconda3/envs/cs231p 下设置了一个名为cs231p 的虚拟环境。 我 cd 到 user/miniconda3/envs/cs231p/bin,并激活了 env

conda activate cs231p

然后我这样做: conda list 以确保 pip 存在:

    ca-certificates           2019.1.23                     0  
    certifi                   2019.3.9                 py37_0  
    libcxx                    4.0.1                hcfea43d_1  
    libcxxabi                 4.0.1                hcfea43d_1  
    libedit                   3.1.20181209         hb402a30_0  
    libffi                    3.2.1                h475c297_4  
    ncurses                   6.1                  h0a44026_1  
    openssl                   1.1.1b               h1de35cc_1  
    pip                       19.0.3                   py37_0  

然后我做:

which pip

表演

 /miniconda3/envs/cs231p/bin/pip

(cs231p) bin$ pip install mpl_finance

我收到错误:但是 pip 的路径不是来自我设置的虚拟环境。

XXX/anaconda/bin/python3.5: can't open file 'install': [Errno 2] No such file or directory

python -m pip install mpl_finance

给予

要求已经满足:mpl_finance in ~/anaconda/lib/python3.5/site-packages (0.10.0)

【问题讨论】:

  • 你也可以用pip install ...代替python -m pip install ....
  • 我很想知道which pip 的输出(在激活的环境中)
  • 更新了我的问题@furas
  • 更新了我的问题@cosmic_inquiry
  • 总是显示完整的 Traceback,而不仅仅是最后一行。你运行pip install 并得到python3.5 can't open file install - 看起来你的pip 不是真实的pip 而是python3.5 的别名。运行python3.5 install mpl_finance,你会得到同样的错误。也许您有自己的名为 pip 的本地脚本/文件,当您运行它时,它会使用此脚本而不是预期的 pip。您可以随时尝试完整路径 /miniconda3/envs/cs231p/bin/pip install mpl_finance。您还可以创建新环境来测试它是否只是这个环境的问题。

标签: python pip virtualenv conda


【解决方案1】:

你也可以使用python -m pip install ....代替pip install ...

但是你运行pip install 并得到python3.5 can't open file "install" - 看起来你的pip 不是真实的pip 而是python3.5 的别名。

运行python3.5 install mpl_finance 会得到同样的错误。

也许您有自己的名为 pip 的本地脚本/文件,当您运行它时,它会使用此脚本而不是预期的 pip

您可以随时尝试完整路径/miniconda3/envs/cs231p/bin/pip install mpl_finance

您也可以创建新环境来测试它是否只是这个环境的问题。

【讨论】:

  • 如何根据您的 cmets 删除“pip”命令到 python3.5 之间的映射?我认为这是麻烦制造者。谢谢! @furas
  • 我不知道 - 我以前从未遇到过这个问题。首先,您必须找到当前的pip - 即使用which pip 并将其删除或重命名。如果它可以找到正确的pip,也许以后它会正常工作 - 或者你必须将正确的pip复制到错误pip的位置/文件夹(或创建软链接 - 类似ln -s /path/to/correct/pip /path/to/previous/wrong/pip
【解决方案2】:
  1. 激活anaconda虚拟环境

    conda activate <env name>
    
  2. 使用 pip 安装包

    python -m pip install <package>
    
  3. 停用 conda 虚拟环境

    conda deactivate
    

【讨论】:

  • 答案的原始版本与 OP 遵循的步骤完全相同。修改后我撤回了投票。
  • 我试过了,但还是不行,Python -m 似乎安装到了anaconda的包而不是虚拟环境,请在我更新的问题中查看详细信息。
  • @Lisa 系统 python 版本是否与虚拟环境相同?
猜你喜欢
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 2022-08-03
  • 2020-07-17
  • 2021-10-21
  • 1970-01-01
  • 2019-07-04
  • 2013-11-20
相关资源
最近更新 更多