【问题标题】:ImportError: Couldn't import DjangoImportError:无法导入 Django
【发布时间】:2018-02-22 22:56:11
【问题描述】:

我已经在pycharm中配置了virtualenv,在使用python manage.py命令时,出现如下错误:

E:\video course\Python\code\web_worker\MxOnline>python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

我应该如何解决它,我已经安装了 django。

【问题讨论】:

  • 尝试使用python3。它对我有用。
  • 重新安装 Django 就可以了

标签: django


【解决方案1】:

我认为使用 django 的最佳方式是使用 virtualenv,它是安全的,您可以在 virtualenv 中安装许多应用程序,这不会影响系统的任何外部空间 vitualenv 使用与您的系统相同的默认 python 版本 安装 virtualenv

sudo pip install virtualenv

或者对于python3

sudo pip3 install virtualenv

然后在你的目录中

mkdir ~/newproject

cd ~/newproject

现在,通过键入在项目目录中创建一个虚拟环境

virtualenv newenv

要将软件包安装到隔离环境中,您必须通过键入以下内容来激活它:

source newenv/bin/activate

现在在这里安装

pip install django

您可以通过键入以下内容来验证安装:

django-admin --version

要离开您的虚拟环境,您需要从系统上的任何位置发出 deactivate 命令:

deactivate

【讨论】:

  • 是的,我按照你说的做了,但我还是提示同样的错误
  • 这应该很好用,因为我在我的系统中尝试过,这很像魅力
  • 我爱你。这对我有用。我尝试了很多其他的东西,但总是出错。你是我的救星
  • 对我来说,它不会生成文件newenv/bin/active,而是newenv/bin/python。这是何等的麻烦。他们为什么不在他们的文档中说明他们需要哪些 ENV 变量。相反,他们使用完全不透明的辅助程序。
【解决方案2】:

你需要安装Django,这个错误是因为没有安装django。

pip install django

【讨论】:

  • 我已经安装好了。我也有 PIP 列表。我使用了python 3.5。现在我把环境改成了2.7,是错误的。我不想写系统。每个 django 中指示 django 的路径
  • 这就是你之前使用的pip3 install django,但现在对于python2,你需要pip install django
【解决方案3】:

当您在计算机上安装 Django 时,一切正常,但当您安装虚拟环境时,它与所有事物分离。当您制作最终项目并将其部署到任何云或托管时,您就会知道它的重要性。

只需在虚拟环境中重新安装 Django 和 baam:

pip install Django

然后只需运行命令进行测试:

python manage.py runsever

你已经完成了。

【讨论】:

    【解决方案4】:

    您需要同时使用这两个命令: pip install djangopip3 install django 对我有用

    【讨论】:

      【解决方案5】:
      1. 检查你是否安装了 Django;通过在 python 中执行import django。 如果一切正常,你就不能看到ModuleNotFoundError

      2. 检查是否安装了 virtualenv;通过执行virtualenv --version。 如果一切正常,您必须查看版本号。

      3. 检查你是否启用了 virtualenv;您的命令提示符起始行中必须有您的 virtualenv 的名称。通过启用它 source bin/activate。另外,记得每次你的工作是deactivate它 完成 virtualenv。

      4. 检查您的 virtualenv 是否包含 django。默认为 virtualenv 没有安装任何模块。你要么必须在你的 virtualenv (即使您的机器中已经有它)或使用 virtualenv --system-site-packages 创建 virtualenv 时 在 virtualenv 中包含系统站点包。

      5. 将 django 添加到您的路径中。打开 python,import django,然后运行 django 查看 django 的路径。然后将其添加到您的~/.bashrc(或 ~/.zshrc 如果您使用的是zsh)。更多信息here

      6. 通过运行pip install django-admin安装django-admin

      【讨论】:

      • 不要让任何人称你为傻瓜。只需将他们指向这个最高级的答案。 :)
      • 我认为@kerberos 应该将此答案标记为正确答案。
      【解决方案6】:

      我在这方面遇到了很大的困难,但我已经解决了我的问题。我在我的 virtualenv 环境中使用 Vagrant ssh 在 Windows 10 上,我安装的盒子是 ubuntu/xenial64,Django 版本 2.1,python==3.6。

      当我安装软件包时,我使用的是 pip3,但最重要的是我使用 sudo 和 -H 标志来安装这些软件包。当我运行 sudo pip3 freeze 时,我的包会出现,但是当我运行普通的 pip3 freeze 时,将没有包。

      然后我尝试了python3 manage.py startapp &lt;YOUR APP NAME&gt;,它没有和你一样的错误。

      我终于想试试sudo python3 manage.py startapp &lt;YOUR APP NAME&gt;它终于奏效了!

      希望对你有帮助:)

      【讨论】:

      • 嘿 Braiden,使用 sudo 意味着您使用 root 来运行您的应用程序!通常不需要这样做(出于安全原因,这甚至很危险)。它表明您对文件或文件夹的权限有问题或有问题。
      • 是的!感谢您的来信。该项目已被放弃(没有提交 git 文件)我很难弄清楚 Vagrant。我一直在使用 anaconda 来学习,现在九月份去上学。我很快就会了解这些东西。
      【解决方案7】:

      如果您在一台没有权限访问所有文件的机器上工作,而且您有两个版本,例如默认 2.7 和最新 3.6,那么在运行命令时,请使用带有命令的 python 版本。如果使用 sudo 安装最新的 python,则使用 sudo 运行命令。

      exp:

      sudo python3.6 manage.py runserver
      

      【讨论】:

      • 将 sudo 添加到我的命令中有效。我使用了 python3 manage.py runserver。
      【解决方案8】:

      激活虚拟环境后,ubuntu 上出现错误。 我只需键入 again 即可解决此问题:

      pip3 install Django
      

      里面的目录就是我要新建一个应用。

      【讨论】:

        【解决方案9】:

        如果不想使用virtualenv,可以使用python3运行文件。python3 manage.py runserver

        To install python3 look at this page

        【讨论】:

          【解决方案10】:

          找到你的 django 父目录路径并将其添加到 PYTHONPATH

          就我而言,我的 django 父目录路径是 /Library/Python/3.7/site-packages,将此行添加到 ~/.bash_profile

          export PYTHONPATH=/Library/Python/3.7/site-packages
          

          如果你已经有 PYTHONPATH,就这样追加它

          export PYTHONPATH=${PYTHONPATH}:/Library/Python/3.7/site-packages
          

          然后

          source ~/.bash_profile
          

          【讨论】:

            【解决方案11】:

            我遇到了同样的问题,就我而言,这是因为除了 Anaconda 之外,我的机器上还有多个 python 版本。 就我而言,django 与我的 anaconda python 配合得不好。 我知道当我在每个 python 终端上为我拥有的所有版本运行 import django 时。

            总结一下,我为解决这个问题而采取的步骤:

            1. 以管理员身份运行 CMD

            2. 创建项目文件夹。

            3. 在项目文件夹内为这个新项目创建一个新的 ENV...

              pip install virtualenv >> virtualenv new_env`
              
            4. 激活它:

              .\new_env\Scripts\activate`
              
            5. env激活后⇒安装Django:

              python -m pip install Django
              

            您在第 5 步中使用的 python 版本将决定哪个 python 将与这个已安装的 Django 一起使用。

            【讨论】:

            • 最后一步对我有用。谢谢!
            【解决方案12】:

            您只需在启动项目时访问最初创建的虚拟环境,而不是创建新的虚拟环境。

            您只需在命令行中执行以下操作:

            1)pipenv shell 访问您最初创建的后端虚拟环境。

            2) 那么,python manage.py runserver

            让我知道它是否适合您。

            【讨论】:

              【解决方案13】:

              如果您激活了虚拟环境,安装了 django,django-admin --version 打印有效版本 - 检查您正在执行的文件中是否没有循环导入。

              【讨论】:

                【解决方案14】:

                我在 Windows 10 上执行此操作时遇到了同样的问题。问题可能是环境变量中没有为 manage.py 定义路径。我做了以下步骤,结果对我有用!

                1. 转到“开始”菜单并搜索 manage.py。
                2. 右键单击它并选择“复制完整路径”。
                3. 转到“我的电脑”或“这台电脑”。
                4. 右键单击并选择“属性”。
                5. 选择高级设置。
                6. 选择“环境变量”。
                7. 在下方窗口中,找到“路径”,点击并点击编辑。
                8. 最后,点击“新增”。
                9. 用 CTRL-V 粘贴复制的路径。
                10. 单击确定,然后以管理员权限重新启动 CMD。

                我真的希望它有效!

                【讨论】:

                  【解决方案15】:

                  我以完全不同的方式解决了这个问题。

                  Package installer = Conda (Miniconda)
                  List of available envs = base, djenv(Django environment created for keeping project related modules).
                  

                  当我使用命令行使用conda activate djenv 激活djenv 时,基本环境已经被激活。我没有注意到,当 djenv 被激活时,(djenv) 显示在命令行提示符的开头。当我厌倦了执行时,python manage.py migrate,这发生了。
                  ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

                  我停用了当前环境,即conda deactivate。这停用了djenv。然后,我停用了base 环境。
                  之后,我再次激活了djenv。这个命令就像一个魅力!

                  如果有人遇到类似问题,我希望您也应该考虑尝试一下。也许有帮助。

                  【讨论】:

                    【解决方案16】:

                    看起来你在使用 runserver 命令时还没有激活你的 virtualenv。

                    Windows:&lt;virtualenv dir&gt;\Scripts\activate.bat

                    Linux:source &lt;virtualenv dir&gt;\bin\activate

                    你应该看到 (name of virtualenv) 作为你当前目录的前缀:

                    (virtualenv) E:\video course\Python\code\web_worker\MxOnline>python manage.py runserver
                    

                    【讨论】:

                      【解决方案17】:

                      窗户:

                      1. (virtualenv dir)\Scripts\activate #这一步激活virtualenv

                      2. 你应该在(项目名称)的目录中

                      3. python manage.py runserver

                      【讨论】:

                        【解决方案18】:

                        你需要进入根目录 并运行以下命令

                        source bin/activate
                        

                        执行上述命令后,您将能够创建自定义应用程序

                        【讨论】:

                          【解决方案19】:

                          我在使用 anaconda 的 Windows 10 中也面临同样的问题 对我来说anaconda3\Scripts&gt;activate

                          它运作良好。你要做的就是去anaconda家

                          AppData\Local\Continuum\anaconda3\Scripts

                          你需要打开一个 cmd 提示符并输入 activate。

                          它会为你激活 venv。

                          【讨论】:

                          • 我删除了anaconda :(
                          【解决方案20】:

                          如果您不想停用或激活已安装的 venv,请确保您已设置 pythonpath 集

                          set pythonpath=C:\software\venv\include;C:\software\venv\lib;C:\software\venv\scripts;C:\software\venv\tcl;C:\software\venv\Lib \site-packages;

                          然后执行

                          "%pythonpath%" %venvpath%Scripts\mytestsite\manage.py runserver "%ipaddress%":8000

                          【讨论】:

                            【解决方案21】:

                            问题与此错误有关:Execution Policy Change

                            通过运行以下命令启动 virtualenv:

                            命令行 C:\Users\Name\yourdjangofilesname>myvenv\Scripts\activate

                            注意:在 Windows 10 上,您可能会收到 Windows PowerShell 的错误消息,指出在此系统上禁用了这些方案的实施。在这种情况下,请使用“以管理员身份运行”选项打开另一个 Windows PowerShell。之后,在启动虚拟环境之前尝试输入以下命令:

                            C:\WINDOWS\system32> set-executionpolicy remotesigned

                            执行政策变更: 执行策略有助于保护您免受您不信任的脚本的侵害。更改执行策略可能会使您面临http://go.microsoft.com/fwlink/?LinkID=135170 上的 about_Execution_Policies 帮助主题中描述的安全风险。

                            您要更改执行策略吗? [Y] 是 [A] 全部是 [N] 否 [L] 全部否 [S] 暂停 [?] 帮助(默认为“N”):A

                            选择 Y(es) 后,关闭 Powershell 管理窗口,然后返回到 Powershell 窗口(出现错误的地方)并再次运行命令。

                            > myenv\Scripts\activate 然后 python manage.py runserver 8085 ,

                            (8085 或任何数字,如果您想更改其默认端口以使其工作,否则您无需指出任何内容。)

                            【讨论】:

                              【解决方案22】:

                              我也遇到了同样的问题,我安装了所有依赖项都使用 root 访问权限:

                              在你的情况下:

                              sudo pip install django

                              就我而言,我在requirements.txt 中拥有所有依赖项,所以:

                              sudo pip3 install -r requirements.txt

                              【讨论】:

                                【解决方案23】:

                                要为您的项目创建虚拟环境,请打开一个新的命令提示符,导航到要在其中创建项目的文件夹,然后输入以下内容:

                                py -m venv 项目名称 这将创建一个名为“project-name”的文件夹,如果它不存在并设置虚拟环境。要激活环境,请运行: 项目名称\脚本\activate.bat**

                                虚拟环境将被激活,您将在命令提示符旁边看到“(项目名称)”来指定它。每次启动新的命令提示符时,都需要再次激活环境。

                                安装 Django

                                可以在虚拟环境中使用 pip 轻松安装 Django。

                                在命令提示符下,确保您的虚拟环境处于活动状态,然后执行以下命令:

                                py -m pip 安装 Django

                                【讨论】:

                                  【解决方案24】:

                                  只需将您的 pipenv 环境与以下内容同步:

                                  pipenv sync
                                  

                                  【讨论】:

                                    【解决方案25】:

                                    我在使用 Django 3 时遇到了这个问题。

                                    manage.py 上详细说明execute_from_command_line 导入。

                                    你应该有:

                                    from django.core.management import execute_from_command_line
                                    

                                    代替

                                    from django import execute_from_command_line
                                     
                                    

                                    【讨论】:

                                      【解决方案26】:

                                      我遇到了同样的问题,我的解决方案没有在这里发布:

                                      我是如何得到错误的

                                      每当我用pip 安装requirements.txt 文件时,我的错误就出现了(假设是从克隆一个git 存储库)。

                                      解决方案

                                      我手动安装了requirements.txt 中的每个模块+ 安装这些模块所需的任何其他模块(例如:我遇到了错误以及缺少安装其他模块的一些模块,因此我也必须添加它们)。

                                      【讨论】:

                                        【解决方案27】:

                                        如果有人在使用虚拟环境并在MacOS上运行时遇到同样的问题,请尝试

                                        sudo python manage.py startapp <project_name>
                                        

                                        而不是

                                        python manage.py startapp <project_name>
                                        

                                        它会惊人地解决问题!

                                        【讨论】:

                                          【解决方案28】:

                                          我必须直接使用虚拟环境 pip3 可执行文件安装 django:

                                          cd [virtual environment folder]/bin
                                          sudo ./pip3 install django
                                          

                                          【讨论】:

                                            【解决方案29】:

                                            如果您使用的是 python 3,请在 cmd 代码前使用 py,如下所示

                                            py manage.py runserver
                                            

                                            【讨论】:

                                              猜你喜欢
                                              • 2018-06-26
                                              • 2018-05-29
                                              • 1970-01-01
                                              • 2015-04-30
                                              • 2019-08-27
                                              • 2020-06-25
                                              • 2016-09-07
                                              • 2018-11-15
                                              相关资源
                                              最近更新 更多