62
задан 20 September 2013 в 23:10

9 ответов

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

при создании среды она настраивает bin каталог. В том 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 не существует, таким образом, это перестало работать.

123
ответ дан 31 October 2019 в 13:18

Для тех, которые сталкиваются с этой проблемой, я обнаружил, что длина пути могла вызвать проблемы также, не используя пробелов (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

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

21
ответ дан 31 October 2019 в 13:18

pip команда не будет работать если:

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

, Если Вы не можете переименовать папки или изменить путь по некоторым причинам, goto yourvirtualenvfolder/bin (использующий cd команда) и затем попробовать ./python pip install packagename.

19
ответ дан 31 October 2019 в 13:18

icktoofay корректен о причине.

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

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

14
ответ дан 31 October 2019 в 13:18

Я получил ту же ошибку в Redhat. Python 2.7.3 настроен и сделан один. [установщик root@Ifx] # зернышко устанавливает Django - удар:/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

1
ответ дан 31 October 2019 в 13:18

Я имел очень похожую проблему о моем машина 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. Удостоверяются, что я использовал зернышко для установки virtualenv, и это - последняя версия (победите 7.1.0). Результат: отказ .
  2. Установка win32api. Результат: отказ (хотя была некоторая ошибка в самом конце процесса установки).
  3. Попытка установить мой VE в пути без пробелов. Результат: отказ .
  4. Переустанавливают мое распределение Python Анаконды к пути, который не содержал" [" и"]" скобки. VE имел пробелы в пути. Результат: отказ .
  5. Переустанавливают мое распределение Python Анаконды к пути, который также не содержал пробелов. Папка VE все еще имела пробелы в пути. Результат: успех!

Так, по крайней мере, Анаконда (Python) простая установка, не располагают-с-интервалами-pollutted путь, был крайне важен . Возможно, установка win32api была также важна. Не уверенный.

0
ответ дан 31 October 2019 в 13:18

Я нашел это от поиска Google при испытании той же проблемы и нашел, что это было очень полезно. virtualenv теперь имеет --relocatable флаг, который перепишет команду хижины к #!/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
0
ответ дан 31 October 2019 в 13:18

Для моего случая деактивируйте среду и source bin/activate снова работы.

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

0
ответ дан 31 October 2019 в 13:18

На Python 3.7 у меня не было проблем с этим, но когда я должен был использовать Python 3.6, у меня действительно была проблема. Самое легкое обходное решение, которое я нашел на GitHub, было этим:

Вместо:

pip install -r requirements.txt

я использую:

python env/bin/pip install -r requirements.txt

, Таким образом, Вы на самом деле непосредственно указываете на файл зернышка в рамках своего каталога виртуальной среды. Конечно, необходимо активировать его сначала прежде, чем попробовать это. Надежда это помогает кому-то, кто приезжает сюда!

0
ответ дан 31 October 2019 в 13:18

Другие вопросы по тегам:

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