Macにvirtualenv環境をセットアップしましたが、Pipでパッケージをインストールできません。次のエラーで失敗します。
/Volumes/Macintosh: bad interpreter: No such file or directory
ここで回答されているように、パスにスペースがあるまで問題を追跡しました: https://stackoverflow.com/a/10873611/126564
(パスは/Volumes/Macintosh HD/Python/my_project
です)
しかし、それは少し問題です。提案されたソリューションは次のとおりです。
「virtualenv環境をスペースのないパスに置くだけです」
スペースのある部分はボリューム自体です。パスを/
のディレクトリに保存しない限り、すべてのパスにスペースがあります。また、「ユーザー空間外にコンテンツを保存する」ことは良い解決策ではないと思います。
これに対するより良い解決策はありますか?
これを試す:
bin/activate
を編集し、VIRTUAL_ENV='/Volumes/Macintosh HD/Python/my_project'
を変更し、PATH="$VIRTUAL_ENV/bin:$PATH"
を変更して、環境で機能するようにします。 echo $PATH
を使用して、機能するかどうかを確認します。bin/pip
とbin/easy_install
を編集して、2つのファイルの最初の行を
#!/usr/bin/env python
上記の2つのステップの後、virtualenvを機能させる(pip/easy_installも)。
Virtualenvにプロジェクトフォルダーを使用する必要はありません。たとえば、virtualenvを/ tmpフォルダーまたはスペースなしの他のフォルダーに配置できます。
virtualenv /tmp/temporary_virtualenv
virtualenv /home/my_envs/env_for_projectname
私にはさらに別の回避策があります-pip
scriptの代わりにpip
packageを使用する必要があるだけです。例えば:
python -m pip install .
あるいは:
python -m pip install -U pip
私にとっては魅力のように動作し、ファイルを変更する必要はありません。
bin/activate
ファイルを編集してスペースをエスケープするとうまくいきました。ファイルを編集して保存し、source bin/activate
を実行します。
Macで通常とは異なるドライブ設定をしている場合を除き、パス/Volumes/Macintosh HD
は/
へのシンボリックリンクにする必要があります。つまり、代わりに
$ virtualenv /Volumes/Macintosh\ HD/venvpath
あなたはただすることができます
$ virtualenv /venvpath
ファイル名のスペースを処理しないソフトウェアを容認しようとしているわけではありません。上記の Hugoのコメント に同意します: 関連するGitHubの問題 に注意してください。
2018年末現在、pip
およびvirtualenv
の最新バージョンはvenv dirのスペースを正しく処理します。
https://github.com/pypa/virtualenv/issues/53#issuecomment-434461292 を参照してください。