Вопрос по python-wheel, pkg-resources, python, virtualenv – Почему `virtualenv` не может найти` pkg_resources`?

9

Я пытаюсь использовать virtualenv в Ubuntu для установки локальной виртуальной среды Python. Когда я запускаю команду оболочки:

<code>$ virtualenv ./virt_python
</code>

Выдает исключение, что не может импортироватьpkg_resources, Но когда я открываю оболочку Python иfrom pkg_resources import load_entry_point работает нормально. Для справки, полная трассировка стека приведена ниже.

<code>$ virtualenv ./virt_python
New python executable in ./virt_python/bin/python
Installing setuptools............done.
Installing pip.......
  Complete output from command /home/rpsharp/local/...hon/bin/easy_install /usr/local/lib/pytho...pport/pip-1.1.tar.gz:
  Traceback (most recent call last):
  File "/home/rpsharp/local/workspace/invest-natcap.invest-3/virt_python/bin/easy_install", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
----------------------------------------
...Installing pip...done.
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 9, in <module>
    load_entry_point('virtualenv==1.7.1.2', 'console_scripts', 'virtualenv')()
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 928, in main
    never_download=options.never_download)
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 1042, in create_environment
    install_pip(py_executable, search_dirs=search_dirs, never_download=never_download)
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 640, in install_pip
    filter_stdout=_filter_setup)
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 1006, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /home/rpsharp/local/...hon/bin/easy_install /usr/local/lib/pytho...pport/pip-1.1.tar.gz failed with error code 1
</code>

Я попробовал решение, предложенное здесьhttps://stackoverflow.com/a/10538412/42897 но это не имело никакого эффекта.

Увидетьstackoverflow.com/questions/1756721/…    а такжеstackoverflow.com/questions/7446187/… Fábio Santos

Ваш Ответ

3   ответа
0

user2676043 in the same thread, virtualenv is installed in /usr/local/lib/python2.7/dist-packages. So run the following command:

$ python /usr/local/lib/python2.7/dist-packages/virtualenv.py --version

Он вернет вам версию virtualenv, установленную в системе.

Now, change the executable file.

$ vim /usr/local/bin/virtualenv

Измените версию на полученную выше. Сохраните файл, и он будет работать гладко.

12

выяснилось, что virtualenv был установлен в /home/ndomuser automotive/install/lib/python2.7/site-packages, пока питон указывал на / home / {user} / install / bin / virtualenv - вы должны знать это, запустив

which virtualenv

Поэтому мне пришлось удалить и переустановить virtualenv

pip uninstall virtualenv 
pip install virtualenv

Это сработало для меня.

Мой virtualenv выдал другую ошибку: «не могу найти пункт», но с тем же «не могу найти колесо для ...» симптом, и ваше решение сработало для меня тоже.
1

что последние версии никогда не загружают ни setuptools (распространяют), ни pip и ожидают найти свои диски локально. Обычно virtualenv говорит что-то вроде

  Cannot find a wheel for setuptools
  Cannot find a wheel for pip

и терпит неудачу с ImportError после этого. Этодокументированный:

If no satisfactory local distributions are found, virtualenv will fail. Virtualenv will never download packages.

Вы можете проверить, есть ли у васVIRTUALENV_EXTRA_SEARCH_DIR установить в вашей среде или соответствующую опцию в virtualenvфайл конфигурации и отключить это.

Чтобы узнать, где virtualenv на самом деле ищет пакеты, вы можете временно добавить операторы print в/usr/local/lib/python2.6/dist-packages/virtualenv.py или что-то вродеimport pdb; pdb.set_trace(), Рассматриваемая функцияfind_wheels и вы заставляете это выглядеть примерно так:

    def find_wheels(projects, search_dirs):
        # … skipping docstring and comments
        for project in projects:
            for dirname in search_dirs:
                print '*** search_dir:', dirname
                files = glob.glob(os.path.join(dirname, project + '-*.whl'))
                if files:
                    wheels.append(os.path.abspath(files[0]))
                    break
            else:
                logger.fatal('Cannot find a wheel for %s' % (project,))

        return wheels
& quot; просто поместите соответствующие файлы .whl, загруженные из PyPI & quot; Где найти файлы pip * .whl и setuptools * .whl @ PyPI? Извиняюсь, если это LMGTFY, но я не нахожу ссылки ...
@TomRoche В нижней части каждой таблицы есть таблица.PyPI page, Прямые ссылки:pypi.python.org/packages/py2.py3/p/pip/… pypi.python.org/packages/3.4/s/setuptools/…

Похожие вопросы