Не удается установить через pip с Virtualenv



Ниже приведена ошибка, которую я получаю при запуске pip:



serkan$ rm -r mysite
serkan$ pwd
/Users/serkan/Desktop/Python Folder
serkan$ virtualenv mysite
New python executable in mysite/bin/python
Installing setuptools............done.
Installing pip...............done.
serkan$ source mysite/bin/activate
(mysite)serkan$ pip install pinax
-bash: /Users/serkan/Desktop/Python Folder/mysite/bin/pip: "/Users/serkan/Desktop/Python: bad interpreter: No such file or directory
(mysite)serkan$ python pip install pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip install Pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip install Pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip install Pinax
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ python pip
python: can't open file 'pip': [Errno 2] No such file or directory
(mysite)serkan$ pip
-bash: /Users/serkan/Desktop/Python Folder/mysite/bin/pip: "/Users/serkan/Desktop/Python: bad interpreter: No such file or directory
(mysite)serkan$ pip install Pinax
-bash: /Users/serkan/Desktop/Python Folder/mysite/bin/pip: "/Users/serkan/Desktop/Python: bad interpreter: No such file or directory
(mysite)serkan$
710   8  

8 ответов:

создайте свою среду virtualenv в пути без пробелов. Вот почему это происходит:

когда вы создаете среду, она устанавливает . В этом bin каталог - это все исполняемые файлы, относящиеся к среде. Некоторые скрипты. Как вы, возможно, знаете, hashbangs используются, чтобы сообщить системе, какой интерпретатор использовать для запуска сценария. Вы можете увидеть это в верхней части скриптов:

#!/usr/bin/env python

если скрипт находится в /tmp/test.py, что говорит системе выполнить эту команду для выполнения сценария:

/usr/bin/env python /tmp/test.py

в вашем случае virtualenv создает такие скрипты:

#!/tmp/oh no/bin/python

когда система попытается выполнить это, она попытается выполнить команду /tmp/oh с аргументами no/bin/python и /tmp/test.py. /tmp/oh не существует, поэтому он терпит неудачу.

для тех, кто сталкивается с этой проблемой, я обнаружил, что длина пути может вызвать проблемы, а также, без использования каких-либо пробелов (Ubuntu 12.04):

virtualenv /home/user/some/very/longer/path/without/spaces/etc/venv

не удалось, в то время как

virtualenv /home/user/some/very/long/path/without/spaces/etc/venv

работал просто отлично, см. комментарий Алекса ниже

icktoofay правильно о причине.

чтобы использовать PIP в виртуальное окружение в каталог с пробелами, редактирование /path/to/env/bin/pip, заменив shebang в верхней части с #!/usr/bin/env python (или #!/usr/bin/env pypy Если вы используете pypy).

обратите внимание, что virtualenv изменяет вашу среду таким образом, что /usr/bin/env python относится к python определяется virtualenv.

не будет работать, если:

  • вы не установили pip в вашей системе. (вы должны установить pip сначала в вашей системе, прежде чем вы можете использовать его в virtualenv. Для установки pip на Ubuntu, используйте команду sudo apt-get install python-pip или sudo apt-get install python3-pip)
  • путь к папке виртуальной среды содержит пространство(ы).(пример: / home / username / my folder name with spaces / newvirtualenv)
  • в путь к папке виртуальной среды слишком длинный. пример: /home/username/mytoobigpath/somefolder/anotherfolder/someanotherfolder/someanotherfolderagain/myvirtualenv. (попробуйте переименовать родительские папки с меньшим имена)

если вы не можете переименовать папки или изменить путь по какой-либо причине, goto yourvirtualenvfolder/bin (через

Я получил ту же ошибку в RedHat. Python 2.7.3 настраивается и производится самостоятельно. [root@ifx installer]# pip install Django - bash: / usr / local / bin / pip: / usr / local / bin / python2. 7: плохой интерпретатор: отказано в разрешении

решение: в /usr / local/bin / pip, заменить первую строку #!/usr / local/bin / python2.7 с вашим фактическим путем Python #!/root / installer / Python-2.7.5 / python

У меня была очень похожая проблема на мою Windows 7 машина и боролась пару дней с этим. Оба пути, к моему распределению python и к моему VE пространства в нем. Пару месяцев до того, как это сработало нормально. Я нашел следующее примечание на сайте virtualenv:

**Windows Notes**
[...] To create a virtualenv under a path with spaces in it on Windows, you’ll need the win32api library installed.

следующие шаги приведут меня к успеху:

  1. убедитесь, что я использовал pip для установки virtualenv, и это последняя версия (pip-7.1.0). Результат: провал.
  2. установить win32api. Результат:провал (хотя была некоторая ошибка в самом конце процесса установки).
  3. попробуйте установить мой VE в путь без пробелов. Результат:провал.
  4. переустановите мой дистрибутив Anaconda python на путь, который не содержит скобок "[" и"]". У него были пробелы в пути. Результат:провал.
  5. переустановите мой Anaconda python распределение по пути, который также не содержит пробелов. В папке VE все еще были пробелы в пути. Результат:успехов!

Так что, по крайней мере, установка Anaconda (python) проста,путь, не загрязненный космосом, был решающим. Возможно, установка win32api также была важна. Не уверенный.

Я нашел это из поиска Google, испытывая ту же проблему и нашел, что это очень полезно. virtualenv теперь --relocatable флаг, который перепишет команду shebang на #!/usr/bin/env <the_python_version_you_used_to_create_the_virtualenv>. Он поставляется с некоторыми оговорками, поэтому не забудьте прочитать документацию, чтобы понять последствия:

https://virtualenv.pypa.io/en/stable/userguide/#making-environments-relocatable

вы должны использовать тот же синтаксис для перемещения virtualenv, как вы сделал при его создании, в противном случае версия python может быть перезаписана. Это будет работать, как ожидалось...

virtualenv --python=python3.5 env-test
virtualenv --relocatable --python=python3.5 env-test

в то время как это приведет к #!/usr/bin/env python2.7 (по крайней мере на моей локальной среде)...

virtualenv --python==python3.5 env-test
virtualenv --relocatable env-test

в моем случае отключите окружение и source bin/activate снова работает.

похоже, что содержимое моей папки имеет те же имена вложенных папок, что и сгенерированные virtualenv, как ящик, lib etc. И после копирования в Мои файлы, реактивировать среду пусть virtualenv для обновления новой информации.

Comments

    Ничего не найдено.