创建新的virtualenv项目并为现有项目创建virtualenv会导致错误

时间:2018-06-20 21:24:14

标签: python django powershell pip virtualenv

我一直在尝试寻找解决此问题的解决方案或线程,但由于我对django,virtualenv,pip等还不熟悉,因此我一开始很难表达它。

我正在使用Windows 10,并且在powershell中执行以下所有操作。

当我开始第一个名为fadderjobb的项目时,我没有使用virtualenv。我使用pip install安装了几个软件包。现在,当我开始第二个项目wingqvist时,我安装了virtualenv,在envs / wingqvist文件夹中创建了虚拟环境,安装了Django,并在另一个新文件夹webdev / wingqvist中创建了一个新的Django项目。看起来像这样。

webdev
|-- fadderjobb
|   `-- projectfiles for fadderjobb
|-- wingqvist
|   `-- projectfiles for wingqvist
`-- envs
    `-- wingqvist
        `-- virualenv files for wingqvist

当我在我的virtualenv(wingqvist)中尝试运行python manage.py在webdev / wingqvist /中迁移时,出现以下错误:

(wingqvist) PS C:\Users\Viktor Wingqvist\documents\webdev\wingqvist> python 

manage.py migrate
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Users\Viktor Wingqvist\documents\webdev\envs\wingqvist\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "C:\Users\Viktor Wingqvist\documents\webdev\envs\wingqvist\lib\site-packages\django\core\management\__init__.py", line 347, in execute
    django.setup()
  File "C:\Users\Viktor Wingqvist\documents\webdev\envs\wingqvist\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\Viktor Wingqvist\documents\webdev\envs\wingqvist\lib\site-packages\django\apps\registry.py", line 89, in populate
    app_config = AppConfig.create(entry)
  File "C:\Users\Viktor Wingqvist\documents\webdev\envs\wingqvist\lib\site-packages\django\apps\config.py", line 90, in create
    module = import_module(entry)
  File "C:\Users\Viktor Wingqvist\documents\webdev\envs\wingqvist\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'mathfilters'

我将'mathfilters'识别为我在fadderjobb中使用的数据包,因此我以某种方式(!?)最终将其作为对(wingqvist)virtualenv的依赖。

我试图通过为fadderjobb创建另一个virtualenv来解决此问题,将所有已安装的pip包保存在requirements.txt中,运行pip卸载-r requirements.txt,激活virualenv(fadderjobb),然后将pip安装在requirements.txt中。 / p>

我现在有一个文件夹/文件结构,类似于:

webdev
|-- fadderjobb
|   `-- projectfiles for fadderjobb
|-- wingqvist
|   `-- projectfiles for wingqvist
`-- envs
    |-- wingqvist
    |   `-- virualenv files for wingqvist
    `-- fadderjobb
        `-- virualenv files for fadderjobb

为确保我在(fadderjobb)中测试了我的旧项目,它看起来很棒,点冻结冻结了我想要的内容,等等。

我停用了(fadderjobb),发现冻结pip不再显示依赖项列表,而只是显示virtualenv。然后,我完全删除了webdev / envs / wingqvist并创建了一个新文件(如果重要的话,我甚至重新注视了我的计算机)。我激活了安装了Django的新(wingqvist)pip,并尝试运行python manage.py migration,并通过ModuleNotFoundError获得了相同的结果。

我真的不知道该怎么办。我想一种解决方案是在(wingqvist)中pip安装所有依赖项,但这有点违背使用virtualenvs的原理。

(在篡改virtualenvs之前,我将python版本从3.6.3(我认为)更新为3.6.5,但是我认为这并不重要。)

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

Viktor,您在virtualenv路径中,请在项目目录中更改parh

(wingqvist) PS C:\Users\Viktor Wingqvist\documents\webdev\wingqvist python 

manage.py迁移

更改为

(wingqvist) PS C:\Users\Viktor Wingqvist\documents\webdev\wingqvist> python 

manage.py迁移

答案 1 :(得分:0)

我通过完全重新安装与python有关的所有内容解决了此问题,并删除了两个项目。我还删除了每个环境变量,并从头开始重新启动。然后,我重新制作了两个virtualenvs,创建了一个名为wingqvist的新django项目,然后git提取了fadderjobb项目。花了一些时间,但(wingqvist)和(fadderjobb)中的所有内容在所需的设置下都能正常工作。

编辑:

现在我遇到了同样的问题,但是只有在项目根目录中,我通过在资源管理器的地址字段中写入“ powershell”打开powershell实例时,才遇到同样的问题。当我以管理员身份通过单击“ Windows键+ X”并单击列表中的Windows Powershell(管理员)打开Powershell时,一切正常。因此,重新安装可能是徒劳的。