Создайте свою среду 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
не существует, поэтому он терпит неудачу.