python - 将 tox 与 Anaconda python 一起使用

标签 python virtualenv anaconda virtualenvwrapper tox

在 Ubuntu 系统上,我正在尝试使用 tox 和多个 python 版本测试 python 包。我尝试测试的 Python 版本之一是 64 位 Anaconda Python 2.7。在开始使用 Tox 进行测试之前,我首先需要让 virtualenv 与 Anaconda 一起工作,因为 Tox 在内部使用 virtualenv。

可以看到,我的Anaconda环境中已经安装了virtualenv:

$ conda install virtualenv
Fetching package metadata: ....
Solving package specifications: ....................
# All requested packages already installed.
# packages in environment at /home/me/software/anaconda:
#
virtualenv                13.0.1                   py27_0  

但是,尝试创建虚拟环境失败了:

$ mkvirtualenv test
New python executable in test/bin/python
Installing setuptools, pip...
  Complete output from command /home/me/....envs/test/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip:
  Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/me/.local/lib/python2.7/site-packages/virtualenv_support/pip-1.5.6-py2.py3-none-any.whl/pip/__init__.py", line 9, in <module>
  File "/home/me/.local/lib/python2.7/site-packages/virtualenv_support/pip-1.5.6-py2.py3-none-any.whl/pip/log.py", line 8, in <module>
  File "/home/me/.local/lib/python2.7/site-packages/virtualenv_support/pip-1.5.6-py2.py3-none-any.whl/pip/backwardcompat/__init__.py", line 66, in <module>
  File "/home/me/software/anaconda/lib/python2.7/urllib2.py", line 93, in <module>
    import hashlib
  File "/home/me/software/anaconda/lib/python2.7/hashlib.py", line 138, in <module>
    _hashlib.openssl_md_meth_names)
AttributeError: 'module' object has no attribute 'openssl_md_meth_names'
----------------------------------------
...Installing setuptools, pip...done.
Traceback (most recent call last):
  File "/home/me/software/anaconda/bin/virtualenv", line 6, in <module>
    sys.exit(main())
  File "/home/me/.local/lib/python2.7/site-packages/virtualenv.py", line 824, in main
    symlink=options.symlink)
  File "/home/me/.local/lib/python2.7/site-packages/virtualenv.py", line 992, in create_environment
    install_wheel(to_install, py_executable, search_dirs)
  File "/home/me/.local/lib/python2.7/site-packages/virtualenv.py", line 960, in install_wheel
    'PIP_NO_INDEX': '1'
  File "/home/me/.local/lib/python2.7/site-packages/virtualenv.py", line 902, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /home/me/....envs/test/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1

如何让 virtualenv 与 Anaconda 一起工作?

最佳答案

我知道现在回答这个问题已经晚了,你可能已经解决了......但仍然没有答案所以我还是会在这里给出一个答案! 我将提供可以在其他网站上找到的食谱,并且我将列出各种来源,这样如果链接断开,答案仍然可以在这里看到。

首先,mkvirtualenv 是一个由包 virtualenvwrapper 而不仅仅是 virtualenv 定义的命令。
其次,使用 Anaconda python 创建虚拟环境的方式(命令)不同于安装了 virtualenv 的标准 python。

创建虚拟环境

使用 Anaconda python,要创建一个 virtualenv,应该按照以下顺序创建一个:

conda create -n envname python=x.x anaconda

其中 envname 是您的虚拟环境的名称,您已通过以下方式检索到要使用的 python 版本:

conda search "^python$"

激活虚拟环境

要激活虚拟环境,请执行以下操作:

source activate envname

安装包到虚拟环境

将包安装到新的虚拟环境类型

conda install -n envname [package]

停用虚拟环境

要停用虚拟环境,请执行

source deactivate

删除虚拟环境

要删除虚拟环境,请执行

conda remove -n envname -all  

来源:
https://uoa-eresearch.github.io/eresearch-cookbook/recipe/2014/11/20/conda/
http://conda.pydata.org/docs/_downloads/conda-pip-virtualenv-translator.html
http://www.numericalexpert.com/blog/conda_virtual_environments/
http://stiglerdiet.com/blog/2015/Nov/24/my-python-environment-workflow-with-conda/

关于python - 将 tox 与 Anaconda python 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33436355/

相关文章:

python - NLTK:conllstr2tree 无法正常工作(Python3)

python - 我无法在 conda 中激活虚拟环境

python - Anaconda 改变了 python 的环境,但没有改变 ipython

python - Anaconda - 在环境中安装 blpapi

python - 无法读取的笔记本 : FileNotFoundError(2, 'No such file or directory' )

python - 我正在学习 python 并且有兴趣将它用于网络脚本。那里有哪些框架,我需要一个吗?

python - Jedi-vim 不工作

python - 如何在虚拟环境中使用 apache Airflow ?

python - 删除PyQt5中动态创建的按钮

numpy - 无法在特定计算机上 `pip install numpy`