web-dev-qa-db-ja.com

パスにスペースを含むvirtualenvを使用する

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環境をスペースのないパスに置くだけです」

スペースのある部分はボリューム自体です。パスを/のディレクトリに保存しない限り、すべてのパスにスペースがあります。また、「ユーザー空間外にコンテンツを保存する」ことは良い解決策ではないと思います。

これに対するより良い解決策はありますか?

51
redwall_hp

これを試す:

  • bin/activateを編集し、VIRTUAL_ENV='/Volumes/Macintosh HD/Python/my_project'を変更し、PATH="$VIRTUAL_ENV/bin:$PATH"を変更して、環境で機能するようにします。 echo $PATHを使用して、機能するかどうかを確認します。
  • bin/pipbin/easy_installを編集して、2つのファイルの最初の行を

    #!/usr/bin/env python

上記の2つのステップの後、virtualenvを機能させる(pip/easy_installも)。

34
Vincent Wen

Virtualenvにプロジェクトフォルダーを使用する必要はありません。たとえば、virtualenvを/ tmpフォルダーまたはスペースなしの他のフォルダーに配置できます。

virtualenv /tmp/temporary_virtualenv
virtualenv /home/my_envs/env_for_projectname
17

私にはさらに別の回避策があります-pipscriptの代わりにpippackageを使用する必要があるだけです。例えば:

python -m pip install .

あるいは:

python -m pip install -U pip

私にとっては魅力のように動作し、ファイルを変更する必要はありません。

10
Tupteq

bin/activateファイルを編集してスペースをエスケープするとうまくいきました。ファイルを編集して保存し、source bin/activateを実行します。

5
Leandro Lima

Macで通常とは異なるドライブ設定をしている場合を除き、パス/Volumes/Macintosh HD/へのシンボリックリンクにする必要があります。つまり、代わりに

$ virtualenv /Volumes/Macintosh\ HD/venvpath

あなたはただすることができます

$ virtualenv /venvpath

ファイル名のスペースを処理しないソフトウェアを容認しようとしているわけではありません。上記の Hugoのコメント に同意します: 関連するGitHubの問題 に注意してください。

3
duozmo

2018年末現在、pipおよびvirtualenvの最新バージョンはvenv dirのスペースを正しく処理します。

https://github.com/pypa/virtualenv/issues/53#issuecomment-434461292 を参照してください。

2
Greg Dubicki