Использование tox с Anaconda Python

В системе Ubuntu я пытаюсь протестировать пакет python с tox и несколькими версиями python. Одна из версий python, которую я пытаюсь протестировать, - это 64-разрядная версия Anaconda Python 2.7. Прежде чем я смогу начать тестирование с Tox, мне сначала нужно заставить virtualenv работать с Anaconda, потому что Tox внутренне использует virtualenv.

Как видите, virtualenv уже установлен в моей среде Anaconda:

$ 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?


person Steve    schedule 30.10.2015    source источник
comment
Есть ли особая польза от использования virtualenv вместо среды conda?   -  person DilithiumMatrix    schedule 30.10.2015
comment
@DilithiumMatrix, tox - это инструмент автоматического тестирования, который автоматически генерирует virtualenvs. Просить о благе на самом деле не имеет смысла, так как у вас нет выбора :)   -  person cel    schedule 30.10.2015
comment
Вам нужно в первую очередь использовать анаконду?   -  person Jonathan    schedule 02.10.2016


Ответы (1)


Я вижу, что поздно отвечать на этот вопрос, и вы, вероятно, решили его ... но до сих пор нет ответа, поэтому я все равно дам его здесь! Я дам рецепт, который можно найти на других сайтах, и перечислю различные источники, чтобы, если ссылки не работают, ответ все еще можно было увидеть здесь.

Во-первых, mkvirtualenv - это команда, определяемая пакетом virtualenvwrapper, а не только virtualenv.
Во-вторых, способ (команды) создания виртуальной среды с помощью Anaconda python отличается от стандартного python с установленным virtualenv.

Создайте виртуальную среду

В 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/

person fedepad    schedule 23.12.2016