0

更新:注意这是在 Windows 机器上

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

这不是我的问题

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

(VENV) python django-admin.py startproject XYZ

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

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

python manage.py runserver

此时 DLL 加载失败。

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

运行正常的 manage.py runserver 可以工作,但由于这是指全局 python 安装,这不是我想要的。

4

1 回答 1

0

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

因此,诸如数据库驱动程序和其他诸如 Python 映像库之类的软件包与虚拟环境不兼容。

我知道三个选项:

  1. 设置编译器环境并手动构建您的模块(不推荐)。
  2. 使用系统 Python(更容易,并且可以与 Python 的预构建二进制 Windows 包一起使用);并手动管理您的需求。
  3. 手动将所需文件复制到您的虚拟环境。

我推荐#2作为三个中最简单的。

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

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

于 2012-08-07T03:13:03.413 回答