Создайте свою 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
не существует, таким образом, это перестало работать.
Для тех, которые сталкиваются с этой проблемой, я обнаружил, что длина пути могла вызвать проблемы также, не используя пробелов (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 ниже
pip
команда не будет работать если:
pip
на Ubuntu используйте команду sudo apt-get install python-pip
или sudo apt-get install python3-pip
) , Если Вы не можете переименовать папки или изменить путь по некоторым причинам, goto yourvirtualenvfolder/bin
(использующий cd
команда) и затем попробовать ./python pip install packagename
.
icktoofay корректен о причине.
Для использования зернышка с virtualenv в каталоге с пробелами отредактируйте /path/to/env/bin/pip
, заменив хижину наверху #!/usr/bin/env python
(или #!/usr/bin/env pypy
при использовании pypy).
Примечание, что virtualenv изменяет Вашу среду, таким образом, что /usr/bin/env python
относится к эти python
определенный virtualenv.
Я получил ту же ошибку в 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
Я имел очень похожую проблему о моем машина 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.
следующие шаги приводят меня к успеху:
Так, по крайней мере, Анаконда (Python) простая установка, не располагают-с-интервалами-pollutted путь, был крайне важен . Возможно, установка win32api была также важна. Не уверенный.
Я нашел это от поиска 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
Для моего случая деактивируйте среду и source bin/activate
снова работы.
кажется, что мое содержание папки имеет те же подымена папок, как сгенерировано virtualenv
, такие как мусорное ведро, lib и т.д. И после копии в моих файлах, повторно активируйте среду, которой позволяют virtualenv
для обновления новой информации.
На Python 3.7 у меня не было проблем с этим, но когда я должен был использовать Python 3.6, у меня действительно была проблема. Самое легкое обходное решение, которое я нашел на GitHub, было этим:
Вместо:
pip install -r requirements.txt
я использую:
python env/bin/pip install -r requirements.txt
, Таким образом, Вы на самом деле непосредственно указываете на файл зернышка в рамках своего каталога виртуальной среды. Конечно, необходимо активировать его сначала прежде, чем попробовать это. Надежда это помогает кому-то, кто приезжает сюда!