virtualenv不创建PYTHONPATH/pip安装的软件包

2024-07-01 07:36:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Win7下对cygwin使用VirtualEnv1.9.1。每个virtualenv的创建没有任何选项(显然除了目录名)。没有特别的定制。在

所有的virtualenv都是新鲜的,我没有创建任何包装脚本,也没有编辑任何virtualenv脚本。我完全确定我没有做任何特别的事情(即除了滥用virtualenv,而不是采取阻碍其运行的行动),这会导致PYTHONPATH在多个virtualenv中缺席。在

每个新virtualenv的virtualenv激活脚本不会创建PYTHONPATH。pip在$VIRTUAL_ENV/lib/python2.7/site-packages/<packagedir>下安装包(例如lib/python2.7/site-packages/html5lib)。在

皮普的行为似乎令人满意。但是,运行python(在激活virtualenv之后)会导致没有pip安装的包可加载(即“没有名为…”的模块)。

更新:向activate添加PYTHONPATH确实“解决”了这个问题。显然,我不想手动维护它,也不必更新activate_this.py。我仍然想知道为什么现在虚拟机不能直接开箱即用。在

解决办法是什么?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

Tags: piptopybinvirtualenvlibpackagessite
2条回答

我唯一能想到的就是PYTHONPATH已经设置好了。由于Cygwin继承了Windows的所有环境变量,如果已经设置了PYTHONPATH,virtualenv将使用该变量而不是正确的目录。检查Windows下是否已设置PYTHONPATH。如果是,请删除它并再次尝试virtualenv。还要检查.bashrc文件,看看PYTHONPATH是否设置在那里。为什么不能使用普通的Python for Windows?你在写POSIX脚本吗?在

我在Win7上运行cygwin的Python。我已经用this安装了easy\u install。然后是皮普,然后是virtualenv。然后运行virtualenv newve,然后source newve/bin/activate,然后pip安装了一个包(IPython)。一切正常。我可以从pythonrepl导入,程序正常工作,路径设置正确。PYTHONPATH永远不会被安置在任何地方。我不知所措。在

试着重新安装所有东西?在

编辑:

发现cygwin包python-setuptools中提供了easy\u安装。在

相关问题 更多 >

    热门问题