当我运行manage.py时如何修复这些错误

Gar*_*ary 2 python django pip virtualenv django-autocomplete-light

我正在将 Python Django 项目从一台服务器移动到另一台服务器。我使用的是 Debian 7,它在目标服务器上标准安装了 python 2.7.3(原始服务器也使用 Debian 7)。

我尝试移动的项目在其父文件夹中具有以下目录:-

-env
-src
Run Code Online (Sandbox Code Playgroud)

它还有一个文件

install.pip 
Run Code Online (Sandbox Code Playgroud)

现在我已经配置了 uwsgi,这些应用程序正在新的网络服务器上运行,但我想使用项目源文件夹中的manage.py。当我运行以下命令时:

 python manage.py changepassword user
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
Run Code Online (Sandbox Code Playgroud)

为了尝试解决这个问题,我安装了 virtualenv 和 pip 并构建了一个新的虚拟环境。然后我运行了以下命令:

pip install -r /sourcefolder/install.pip
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到一个错误

Failed building wheel for Pillow
Run Code Online (Sandbox Code Playgroud)

我在线研究了这一点,并确定一个可能的解决方案是安装 libjpg,我使用以下命令完成

apt-get install libjpeg8-dev
Run Code Online (Sandbox Code Playgroud)

然后我再次运行pip install -r /sourcefolder/install.pip,这次它完成了,没有任何错误。

我尝试再次运行该命令:-

 python manage.py changepassword user
Run Code Online (Sandbox Code Playgroud)

我仍然收到错误,但现在它已经改变了。

  1. 如果我在虚拟环境之外运行该命令,我会收到以下错误:

    文件“manage.py”,第8行,来自django.core.management导入execute_from_command_line导入错误:没有名为django.core.management的模块

  2. 如果我从虚拟环境内部运行命令(我已使用 install.pip 要求在其中运行了 pip),我会收到此错误

为了便于阅读等,我已将长路径更改为 /sourcepath:-

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/sourcepath/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
    utility.execute()
  File "/sourcepath/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 324, in execute
    django.setup()
  File "/sourcepath/env/local/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/sourcepath/env/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/sourcepath/env/local/lib/python2.7/site-packages/django/apps/config.py", line 90, in create
    module = import_module(entry)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named dal
Run Code Online (Sandbox Code Playgroud)

然而更多的在线研究已经确定这可能是由于缺少 dal 软件包,我应该能够安装:-

pip install dal
Run Code Online (Sandbox Code Playgroud)

但是,当我运行该命令时,我收到以下错误

(省略路径的第一部分)

/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
      InsecurePlatformWarning
      Could not find a version that satisfies the requirement dal (from versions: )
    No matching distribution found for dal
Run Code Online (Sandbox Code Playgroud)

我的研究无法找到这个最新错误的任何解决方案。我开始认为我的方法是错误的,因为我似乎陷入了错误不断增加的陷阱。

我只是想将 django 项目从一台服务器移动到另一台服务器,然后从源文件夹中执行 manage.py 而不会出现任何错误。(我是系统管理员而不是 django 编码员,所以希望我错过了一个简单的解决方案)非常感谢任何帮助。

val*_*tev 5

dal意味着django-autocomplete-light。可能有人忘记将此包包含在需求中。您还可以检查 INSTALLED_APPS 以查看是否确实需要它。

要使用 pip 安装它,您应该执行pip install django-autocomplete-light. 希望能帮助到你。