【问题标题】:Anaconda, Python package install through pip not working, LinuxAnaconda,通过 pip 安装 Python 包不起作用,Linux
【发布时间】:2018-02-14 23:56:09
【问题描述】:

我在使用 pip 安装软件包时遇到问题。在我的环境中通过 conda 安装软件包时,它工作正常但是当尝试通过 pip 安装时,我继续收到 ImportError: No Module named X.

我尝试安装的软件包是一组不属于 conda 发行版的软件包。

例子

[sjamal@login1(franklin) src]$ source activate Py343

(Py343) [sjamal@login1(franklin) src]$ pip install pyvcf

Collecting pyvcf
Requirement already satisfied: setuptools in /users/sjamal/anaconda3/envs/Py343/lib/python3.4/site-packages/setuptools-27.2.0-py3.4.egg (from pyvcf)
Installing collected packages: pyvcf
Successfully installed pyvcf-0.6.8

(Py343) [sjamal@login1(franklin) src]$ python

Python 3.4.3 |Continuum Analytics, Inc.| (default, Oct 19 2015, 21:52:17) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>> import vcf
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'vcf'

在 ~/.bashrc 我添加了以下路径 /users/sjamal/anaconda3/bin 这显然允许我访问 anaconda、conda 等。

我最初认为我遇到了与下面提出的问题相同的问题。但要么我误解了答案,要么不是同一个问题。

Does anaconda create a separate PYTHONPATH variable for each new environment?

我很确定这是一个路径问题,但我不了解如何通过 pip 和 conda 将软件包安装到各自的环境中,这可能是我似乎无法解决它的原因。

附加信息:

我在无法执行任何 root 命令的集群上的登录节点上。我确信不需要 root 访问权限,但认为最好提一下。我的 linux 发行版是 CentOS release 6.6 (Final)。

感谢观看!

【问题讨论】:

    标签: python linux pip package anaconda


    【解决方案1】:

    我设法弄明白了。在我的系统上做了一些搜索之后。我发现 pip 和 conda 将软件包安装到两个不同的位置。就我而言..

    conda - Installed to my current anaconda environment just as expected
    pip - /users/sjamal/gridware/share/python/2.7.8/lib/python3.6/site-packages/
    

    我认为将 pip 安装到不同位置的原因是我们在 HPC 上预先设计了基础架构,因此在下面添加了以下前缀。

    /users/sjamal/gridware/share 
    

    为了使用我的包,有 3 种方法可以做到这一点。其中两个我可以做到。最后一个,但是我无法弄清楚,因为它需要我更改 pips 默认位置来安装软件包。我尝试使用

    pip install -t <dir> 
    

    虽然它不断抛出错误并且不允许我选择安装文件夹的目标。

    另外两个选择是:

    1. Install the packages using pip install <package> and then move the      packages to the original destination. 
    
    2. Add the path to the environment where I want to have the packages installed to the local PATH variable in ~/.bashrc. However, this beats the fact of working in different environments as the package will be accessible from different environments.
    

    如果有人知道如何重定向 pip 的默认安装目标,如果您与我分享,我将不胜感激。在那之前,我会继续寻找更好的选择。

    最后感谢@amrit 的回复!

    干杯!

    【讨论】:

    【解决方案2】:

    先试试这个..

    $python3

     >>> import sys
    
     >>> sys.path.append('/all/path/to/C/Python')
    
     >>> import vcf
    

    如果不工作,那么......

    安装 python 3.6.2 和 ... 写

    import vcf 
    

    而不是

    import pyvcf
    

    【讨论】:

    • 回答您的第一个建议 - 我想我需要附加到 sys 的路径不会是 Python,而是包所在的位置 .../pythonX.X/site-packages .但是,这些软件包永远不会被下载,或者至少我不知道在哪里。对于您的第二个建议-问题仍然是未安装该软件包,因此无法更改版本。最后,我对修复 pip 感兴趣,这样我就可以将软件包安装到我的 anaconda 环境中。我不想找到解决办法,所以恐怕这不会解决我的问题。
    猜你喜欢
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2018-01-10
    • 2020-05-10
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多