【问题标题】:Installed Virtualenv and activating virtualenv doesn't work安装 Virtualenv 并激活 virtualenv 不起作用
【发布时间】:2017-02-17 11:53:48
【问题描述】:

我从 Github Account 克隆了我的 Django 项目,并使用著名的命令 source nameofenv/bin/activate 激活了 virtualenv 当我运行python manage.py runserver

它给了我一个错误提示:

ImportError:无法导入 Django。您确定它已安装并在您的 PYTHONPATH 环境变量中可用吗?您忘记激活虚拟环境了吗?

【问题讨论】:

  • 是否你确定它已经安装了吗?你是怎么安装的?
  • 我刚刚激活了 virtualenv 并尝试使用 python manage.py runserver 命令,我认为激活 virtualenv 后不需要安装任何依赖项,或者是吗?我知道的不多!
  • 但是你仍然需要某个地方的 Django!如果您不安装它,您希望它如何出现在您的 virtualenv 中?
  • 我在想我需要的每一个依赖项都可能存在于 virtualenv 中。如果不是这样,那我就错了!这意味着我必须安装该项目的所有相关依赖项?

标签: python django virtualenv


【解决方案1】:

我已经通过pip3 install Django 安装了 Django 2,但我运行的是python manage.py runserver 而不是python3 manage.py runserver。 Django 2 仅适用于 python 3+。

【讨论】:

    【解决方案2】:

    如果您的机器上有多个python,例如python2.7python3.4python3.6,则重要的是要弄清楚python真正引用的版本,以及更多,哪个版本版本确实 pip 引用。

    在我安装let's encrypt 后运行以下命令时遇到了同样的问题。

    (python3 manage.py runserver 0:8000 &)
    

    我检查了python版本,发现python3python3.4python3.6python3.4m都是可用的。

    我只是将python3 更改为python3.6 并解决了问题。

    (python3.6 manage.py runserver 0:8000 &)
    

    所以,这可能是版本不匹配的问题,如果长时间正常,突然崩溃。

    【讨论】:

      【解决方案3】:

      我猜你也从你的另一台电脑上传了虚拟环境。你希望只有激活它才会起作用,bzz。

      不建议将 virtualenv 文件上传到您的 git 存储库,因为 @Alain 说拥有一个包含项目依赖项的 requirements.txt 文件是一个好习惯。您可以使用pip freeze > requirements.txt(激活环境时)生成项目需求文件。

      这样做,当您从另一台计算机克隆存储库时,您需要通过发出命令来创建一个新的 virtualenv:

      virtualenv nameofenv
      

      然后激活它:

      source nameofenv/bin/activate
      

      最后,使用需求文件为您的项目安装需求:

      pip install -r requirements.txt
      

      【讨论】:

        【解决方案4】:

        在 ubuntu 版本上

        #install python pip 
        sudo apt-get install python-pip
        #install python virtualenv
        sudo apt-get install python-virtualenv
        # create virtual env 
        virtualenv  myenv
        #activate the virtualenv
        . myenv/bin/activate
        #install django inside virtualenv
        pip install django
        #create a new django project
        django-admin.py startproject mysite
        #enter to the folder of the new django project
        cd mysite
        #run the django project
        python manage.py runserver 
        

        【讨论】:

        • 对不起兄弟,我忘了说我正在使用 MacOS。感谢您的回答:)
        • 在激活你的 virtualenv 时确定如果你运行 pip freeze 命令它必须返回 smth like django== 你的 django 版本尝试通过命令 pip install django 在你的 virtualenv 中安装 django
        • @abhi_bond 在你的项目的顶层目录中是否有一个名为requirements.txt 的文件?
        • @Dimitris 我使用 pip freeze 命令时没有安装 django,看来我必须安装 Django。谢谢哥们:)
        • 不,Alain,我在从另一台 PC 上传该项目时没有创建 requirements.txt 文件。无论如何谢谢:)
        【解决方案5】:

        我在想我需要的每一个依赖项都可能存在于 virtualenv 中。

        嗯,不。默认情况下,新创建的 virtualenv 是空的,即没有第三方库。 (或者,您可以允许 virtualenv 访问安装在系统范围内的库,但这是另一回事。)

        创建 virtualenv 后,您需要安装所需的依赖项。

        (virtualenv 怎么知道你需要什么依赖?)

        过程是安装 virtualenv,激活它,然后安装项目所需的库(在你的情况下是 Django 和可能其他)。

        如果您的项目有一个 requirements.txt,您可以使用以下命令安装每个所需的依赖项:

        pip install -r requirements.txt
        

        如果你的项目有setup.py,你也可以执行

        pip install -e path/to/your/project/clone/.
        

        在 virtualenv 中安装项目。这应该会安装依赖项。

        当然,如果唯一的依赖是Django,你可以输入

        pip install django
        

        【讨论】:

        • 你的意思是把django安装到venv文件夹“C:\Users\John Uzoma\AppData\Local\Programs\Python\Python35\Lib\venv”吗?
        • 好吧,激活新创建的 venv,然后从那里执行pip install django。不要手动复制文件夹。
        猜你喜欢
        • 2018-06-25
        • 1970-01-01
        • 1970-01-01
        • 2019-06-04
        • 2016-11-04
        • 2014-04-23
        • 2011-11-14
        • 2020-12-20
        相关资源
        最近更新 更多