Windows上的virtualenv:未覆盖已安装的软件包

2024-09-29 06:31:20 发布

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

我当前的设置是在Windows上的python2.5/django1.1.1。我想在一些项目中开始使用django1.2,但不能将其用于所有项目。这正是我要做的事情。然而,我遇到了一个我从未遇到过的问题,也很难通过Google找到:将django1.2安装到virtualenv中对我没有任何影响。如果我激活环境

  • Python
  • 进口django
  • 在django.版本在

我得到“1.1.1决赛”。Django安装在我环境的site packages目录中,根目录下的init文件显示它是1.2。但是环境回到了1.1.1,即使我用--no site packages标志创建环境。我搞砸了什么?在


Tags: 项目django版本目录环境virtualenvinitwindows
2条回答

根据您在bitbucket上提交的bug,您似乎在使用PYTHONPATH环境变量来指向包含一些包的目录,包括Django 1.1.1。按照设计,PYTHONPATH总是在您的搜索路径,即使您激活了virtualenv(因为PYTHONPATH在您的直接和直接控制之下,并且人们将其用于本地覆盖)。在

在本例中,如果您不希望在激活virtualenv时使用PYTHONPATH,那么您需要自己处理这个问题;也许可以通过创建一个自定义批处理文件来调用virtualenv的批处理文件激活.bat也修改了PYTHONPATH。在

您可以使用一些工具来诊断这些问题:

要查看django来自何处,请打印django.__file__。它将显示指示django在文件系统中的位置的文件。在

要查看Python查找包的所有位置,请打印sys.path。这是一个目录列表。在

要查看导入的情况,请以python -v的形式启动python,您将看到许多关于导入包的位置的调试信息。在

相关问题 更多 >