9

virtualenv[wrapper]Cygwin を使用して Windows マシンで作業しようとしています。http://www.doughellmann.com/docs/virtualenvwrapper/easy_installの指示に従って、インストールは成功します。

を使用すると問題が発生しますmkvirtualenv [name_of_vir_env]。次の出力が得られます。

$ mkvirtualenv testenv
New python executable in testenv\Scripts\python.exe
Installing setuptools.................done.
bash: D:\.virtualenvs/testenv/bin/postactivate: No such file or directory
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/postactivate': No such file or directory
bash: D:\.virtualenvs/testenv/bin/predeactivate: No such file or directory
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/predeactivate': No such file or directory
bash: D:\.virtualenvs/testenv/bin/postdeactivate: No such file or directory
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/postdeactivate': No such file or directory
ERROR: Environment 'D:\.virtualenvs/testenv' does not contain an activate script.

testenvディレクトリ内にはサブディレクトリはなく、 andbinのみです。この特定の環境をアクティブ化するために使用されるはずのものが含まれていますが、これを実行しようとするとエラーが発生します:LibScriptsScriptsactivate.batbash

$ ./activate.bat
./activate.bat: line 1: @echo: command not found
./activate.bat: line 4: syntax error near unexpected token `('
./activate.bat: line 4: `if not defined PROMPT ('

終了bashして呼び出すactivate.batと、これが目的の環境に変わります。しかし、そうでないと、コマンドやその他bashのコマンドを使用できません。workonvirtualenvwrapper_bashrc

この 2 つを一緒に動作させるには、つまり にとどまってbashのコマンドを使用できるようにするにはどうすればよいvirtualenvwrapper_bashrcですか?

4

4 に答える 4

3

私はvirtualenvwrapperの経験はありませんが、virtualenvを定期的に使用しています。activate.batはcygwinで実行することを意図したものではないと思います。通常のウィンドウ・シェルで実行すると機能します。cygwinを使用している場合は、bin / activate(UNIXライクなOSのバージョン)のようなものを使用することをお勧めします。

bash内のcygwin環境は、activate.batが実行することを期待している標準環境とは大幅に異なる可能性があるため、bashで動作するアクティブ化スクリプトを見つける(おそらくUNIXバージョンからのコピーを見つける)と、実行できる場所にたどり着くでしょう。 bash内のvirtualenv。

于 2011-01-29T02:49:21.540 に答える
1

これは私のためにそれをしました:

https://bitbucket.org/cliffxuan/virtualenvwrapper-for-cygwin-windows-python

バニラvirtualenvwrapperは Cygwin 環境をサポートしていないようです。

ただし、virtualenv のディレクトリの下にある実行可能スクリプトは、コマンドScriptsに明示的に渡して使用しない場合にのみ実行可能であり、Cygwin が暗黙のうちに で始まるパスを変換するものを使用しないでください — ネイティブ Windows Python はそれらのパスを認識できません。python~/cygdriv/c/...

于 2012-09-15T18:28:37.267 に答える
1

この投稿は有望に見えます http://atbrox.com/2009/09/21/how-to-get-pipvirtualenvfabric-working-on-cygwin/

-- クエンティン

于 2010-12-01T05:02:47.223 に答える
0

私はvirtualenvを知りませんが、cygwinからの古典的な混合パス構文の問題のように見えるものを見ています:

あなたの文字列は次のとおりです。

D:\.virtualenvs/testenv/bin/predeactivate

しかし、Cygwin はバックスラッシュを "." のエスケープとして解釈しています。キャラクター、プロデュース:

D:.virtualenvs/testenv/bin/postactivate

これは、引用しているエラー テキストにあり、明らかに不正なパスです。実際の環境変数を確認してください。おそらく DOS/Windows パス構文ですが、内部部分は cygwin/unix 構文です。

その場合は、os.path.join を使用して 2 つの部分を結合し、一貫した構文が得られるかどうかを確認してください。

于 2010-12-16T00:11:00.803 に答える