2013-04-29 8 views
7

私はwin7の下でcygwinでvirtualenv 1.9.1を使用しています。各virtualenvはオプションなしで作成されます(ディレクトリ名以外は明らかです)。ファンキーなカスタマイズはありません。virtualenvは作成しませんPYTHONPATH/pipインストールされたパッケージは動作しません

すべてのvirtualenvsは、私がラッパースクリプトを作成していないという意味で新鮮で、virtualenvスクリプトも編集していません。私は、複数の仮想端末にPYTHONPATHを存在させないようにするために、何か特別なことをしていないことを完全に確信しています(つまり、仮想操作を誤用するのではなく、その操作を邪魔します)。

新しいvirtualenvごとにvirtualenv activateスクリプトはPYTHONPATHを作成しません。 pipは$VIRTUAL_ENV/lib/python2.7/site-packages/<packagedir>(例えばlib/python2.7/site-packages/html5lib)の下にパッケージをインストールします。

pipの動作が望ましいようです。 しかし、pythonを実行すると(virtualenvをアクティブにした後)ピップインストールされたパッケージはロードできません(つまり、「no module named ...」)。

更新:activateにPYTHONPATHを追加すると、実際に問題が「解決」されます。明らかに、私はこれを手動で維持したくなく、activate_this.pyを更新する必要もありません。私はまだvirtualenvsがすぐにすぐに動作しない理由を知りたいです。

解決策は何ですか? virtualenvは決してこれをするのに使わなかった。今何が問題なの?

アップデート2:ここでは、-vvとvirtualenvのを実行しているの出力です:

$ virtualenv -vv newvirtualenv 
Creating newvirtualenv/lib/python2.7 
Symlinking Python bootstrap modules 
    Symlinking newvirtualenv/lib/python2.7/config 
    Symlinking newvirtualenv/lib/python2.7/lib-dynload 
    Symlinking newvirtualenv/lib/python2.7/os.py 
    Ignoring built-in bootstrap module: posix 
    Symlinking newvirtualenv/lib/python2.7/posixpath.py 
    Cannot import bootstrap module: nt 
    Symlinking newvirtualenv/lib/python2.7/ntpath.py 
    Symlinking newvirtualenv/lib/python2.7/genericpath.py 
    Symlinking newvirtualenv/lib/python2.7/fnmatch.py 
    Symlinking newvirtualenv/lib/python2.7/locale.py 
    Symlinking newvirtualenv/lib/python2.7/encodings 
    Symlinking newvirtualenv/lib/python2.7/codecs.py 
    Symlinking newvirtualenv/lib/python2.7/stat.py 
    Symlinking newvirtualenv/lib/python2.7/UserDict.py 
    File newvirtualenv/lib/python2.7/lib-dynload/readline.dll already exists 
    Symlinking newvirtualenv/lib/python2.7/copy_reg.py 
    Symlinking newvirtualenv/lib/python2.7/types.py 
    Symlinking newvirtualenv/lib/python2.7/re.py 
    Symlinking newvirtualenv/lib/python2.7/sre.py 
    Symlinking newvirtualenv/lib/python2.7/sre_parse.py 
    Symlinking newvirtualenv/lib/python2.7/sre_constants.py 
    Symlinking newvirtualenv/lib/python2.7/sre_compile.py 
    File newvirtualenv/lib/python2.7/lib-dynload/zlib.dll already exists 
    Symlinking newvirtualenv/lib/python2.7/warnings.py 
    Symlinking newvirtualenv/lib/python2.7/linecache.py 
    Symlinking newvirtualenv/lib/python2.7/_abcoll.py 
    Symlinking newvirtualenv/lib/python2.7/abc.py 
    Symlinking newvirtualenv/lib/python2.7/_weakrefset.py 
Creating newvirtualenv/lib/python2.7/site-packages 
Writing newvirtualenv/lib/python2.7/site.py 
Writing newvirtualenv/lib/python2.7/orig-prefix.txt 
Writing newvirtualenv/lib/python2.7/no-global-site-packages.txt 
Creating parent directories for newvirtualenv/include 
Symlinking newvirtualenv/include/python2.7 
Creating newvirtualenv/bin 
New python executable in newvirtualenv/bin/python2.7 
Changed mode of newvirtualenv/bin/python2.7 to 0755 
Also creating executable in newvirtualenv/bin/python 
Changed mode of newvirtualenv/bin/python to 0755 
Testing executable with newvirtualenv/bin/python2.7 -c "import sys;out=sys.stdout;getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))" 
Got sys.prefix result: u'/cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv' 
Creating newvirtualenv/lib/python2.7/distutils 
Writing newvirtualenv/lib/python2.7/distutils/__init__.py 
Writing newvirtualenv/lib/python2.7/distutils/distutils.cfg 
Using existing setuptools egg: /usr/lib/python2.7/site-packages/virtualenv_support/setuptools-0.6c11-py2.7.egg 
Installing setuptools... 
    Running command /cygdrive/c/Users/ma...ualenv/bin/python2.7 -c "#!python 
\"\"\"Bootstra...sys.argv[1:]) 






" -v /usr/lib/python2.7/s...ols-0.6c11-py2.7.egg 
    Processing setuptools-0.6c11-py2.7.egg 
    Copying setuptools-0.6c11-py2.7.egg to /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/lib/python2.7/site-packages 
    Adding setuptools 0.6c11 to easy-install.pth file 
    Saving /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/lib/python2.7/site-packages/easy-install.pth 
    Installing easy_install script to /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/bin 
    changing mode of /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/bin/easy_install to 755 
    Installing easy_install-2.7 script to /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/bin 
    changing mode of /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/bin/easy_install-2.7 to 755 

    Installed /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg 
    Processing dependencies for setuptools==0.6c11 
    Finished processing dependencies for setuptools==0.6c11 
...Installing setuptools...done. 
Installing existing pip-1.3.1.tar.gz distribution: /usr/lib/python2.7/site-packages/virtualenv_support/pip-1.3.1.tar.gz 
Installing pip... 
    Running command /cygdrive/c/Users/ma...ualenv/bin/python2.7 -x /cygdrive/c/Users/ma...env/bin/easy_install /usr/lib/python2.7/s...ort/pip-1.3.1.tar.gz 
    Processing pip-1.3.1.tar.gz 
    Running pip-1.3.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-ZP_VIv/pip-1.3.1/egg-dist-tmp-H3XBh_ 
    warning: no files found matching '*.html' under directory 'docs' 
    warning: no previously-included files matching '*.txt' found under directory 'docs/_build' 
    no previously-included directories found matching 'docs/_build/_sources' 
    Adding pip 1.3.1 to easy-install.pth file 
    Installing pip script to /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/bin 
    Installing pip-2.7 script to /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/bin 

    Installed /cygdrive/c/Users/marcin/Documents/codeprojects/newvirtualenv/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg 
    Processing dependencies for pip==1.3.1 
    Finished processing dependencies for pip==1.3.1 
...Installing pip...done. 
Writing newvirtualenv/bin/activate 
Writing newvirtualenv/bin/activate.fish 
Writing newvirtualenv/bin/activate_this.py 
Writing newvirtualenv/bin/activate.csh 
+0

醜い解決策:おそらく 'activate'スクリプトをハックし、そこに手動でパスを追加するのでしょうか? –

+0

@ JakubM。それは私には起こりましたが、これは明らかに何か他のことをしていないか、またはvirtualenvの現行バージョンのバグのようです。 – Marcin

+0

'PYTHONPATH'は赤いニシンです。 'activate'で**設定されていません**。それは決してありません。 'bin/python.exe'の中のpython実行可能ファイルは' PYTHONHOME'(内部的に)を設定します。あなたは 'virtualenv -vv'(2つの' -v'オプション)を実行して問題をデバッグするのに役立つ質問にこのデバッグ出力を表示できますか? –

答えて

1

私はCygwinのPythonを実行しているWin7です。私はthisでeasy_installをインストールしました。次に、pipしてからvirtualenvを実行します。次にvirtualenv newveを実行し、次にsource newve/bin/activateを実行して、pip(IPython)をインストールします。すべてうまく動作します。私はPython REPLからインポートすることができ、プログラムは動作し、パスは正しく設定されます。そして、PYTHONPATHは決してどこにも設定されません。私は迷っている。

すべてを再インストールしてみますか?

編集:

はcygwinのパッケージpython-setuptoolsで提供されeasy_installを見つけました。

+0

私は実際に私が再インストールしたときにpython-setuptoolsの代わりにpypiから直接ダウンロードしたバージョンを使用しました。それが犯人かどうかはわかりません。 – Marcin

0

私は考えることができる唯一のことは、PYTHONPATHが既に設定されていることです。 CygwinはWindowsのすべての環境変数を継承しているので、PYTHONPATHがすでに設定されていると、virtualenvは適切なディレクトリの代わりにそれを使用します。 Windows PYTHONPATHが既に設定されているかどうかを確認してください。そうであれば、それを削除してvirtualenvをもう一度試してください。また、.bashrcファイルでPYTHONPATHが設定されているかどうかを確認してください。通常のPython for Windowsを使用できないのはなぜですか?あなたはPOSIXスクリプトを書いていますか?

+0

明確にする:PYTHONPATHは存在しません。環境内に設定されていません。 cygwinは開発環境としてcygwinを使用する方が好きなのでcygwinを使用しています。 – Marcin

+0

@Marcin:うーん...奇妙。 Windowsで動作するかどうか試してみることはできますか?もしそうなら、それはCygwinまたはCygwinのPythonのいずれかで問題であることがわかります。そうでなければ、私は完全に無知です。他のすべてが失敗した場合は常に 'sys.path.append'を使用することができます。 – refi64

+0

私は窓を使用しています。 Cygwinはウィンドウです。 – Marcin

関連する問題