windows + virtualenv - django runserver搜索全局pythonpath

时间:2012-08-07 02:56:51

标签: django virtualenv pythonpath

更新:请注意,这是在WINDOWS机器上

关于virtualenv以及安装的pythonpath的差异,堆栈上有很多帖子。在大多数情况下,这些用户只是在执行pip安装之前忘记激活env。

这不是我的问题

相反,我的问题在于运行manage.py runserver时的django。我正在尝试迁移在创建virtualenv之前启动的django项目。作为其中的一部分,我尝试在激活的virtualenv中创建一个新的django项目,并简单地迁移我的旧文件。

(VENV) python django-admin.py startproject XYZ

*注意:我已经激活了virtualenv并使用“python”运行命令,它指的是virutalenv中的python安装

然后我将旧文件迁移并运行:

python manage.py runserver

此时DLL加载失败。

Error: DLL load failed: The specified module could not be found.

运行一个普通的manage.py runserver,但由于这是指全局python安装,这不是我想要的。

1 个答案:

答案 0 :(得分:0)

Windows for Python上的二进制安装程序与虚拟环境不兼容,只安装到默认系统Python(如注册表中所列)。

因此,数据库驱动程序等软件包与Python Imaging Library等软件包不兼容虚拟环境。

我知道三个选项:

  1. 设置编译环境并手动构建模块(不推荐)。
  2. 使用系统Python(更简单,并与Python的预构建二进制Windows包一起使用);并手动管理您的要求。
  3. 手动将所需文件复制到虚拟环境中。
  4. 我建议将#2作为三者中最容易的。

    您可以尝试使用setuptools(easy_installpip),但除非您设置了开发环境,否则程序包将无法成功编译和安装(不会构建DLL);导致你遇到的错误。

    对于heroku;您可以手动管理您的需求文件并添加psycopg2以确保heroku正确部署您的应用程序。