创建新的虚拟环境项目并为现有项目创建虚拟环境会导致错误



我试图寻找解决这个问题的解决方案或线程,但我一开始很难表达它,因为我对 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:UsersViktor Wingqvistdocumentswebdevwingqvist> python 
manage.py migrate
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "C:UsersViktor Wingqvistdocumentswebdevenvswingqvistlibsite-packagesdjangocoremanagement__init__.py", line 371, in execute_from_command_line
utility.execute()
File "C:UsersViktor Wingqvistdocumentswebdevenvswingqvistlibsite-packagesdjangocoremanagement__init__.py", line 347, in execute
django.setup()
File "C:UsersViktor Wingqvistdocumentswebdevenvswingqvistlibsite-packagesdjango__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:UsersViktor Wingqvistdocumentswebdevenvswingqvistlibsite-packagesdjangoappsregistry.py", line 89, in populate
app_config = AppConfig.create(entry)
File "C:UsersViktor Wingqvistdocumentswebdevenvswingqvistlibsite-packagesdjangoappsconfig.py", line 90, in create
module = import_module(entry)
File "C:UsersViktor Wingqvistdocumentswebdevenvswingqvistlibimportlib__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 安装需求.txt中的所有内容。

我现在有一个文件夹/文件结构,如下所示:

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

为了确保我在 (fadderjobb( 中测试了我的旧项目,它看起来很棒,pip 冻结返回我想要的东西等。

我停用了 (fadderjobb(,看到 pip 冻结不再显示依赖项列表,只是 virtualenv。然后我删除了webdev/envs/wingqvist,并像以前一样创建了一个新的(如果这很重要,我甚至重新设置了我的电脑(。我激活了新的(wingqvist(pip安装的Django,并尝试运行python manage.py 迁移,并使用ModuleNotFoundError得到了相同的结果。

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

(在篡改 virtualenv 之前,我将我的 python 版本从 3.6.3(我认为(更新到 3.6.5,但我认为这无关紧要。

有什么想法吗?

Viktor,您在虚拟路径中,请更改项目目录中的参数

(wingqvist) PS C:UsersViktor Wingqvistdocumentswebdevwingqvist python 

manage.py 迁移

更改为

(wingqvist) PS C:UsersViktor Wingqvistdocumentswebdevwingqvist> python 

manage.py 迁移

我通过完全重新安装与 python 有关的所有内容来解决此问题,并删除了这两个项目。我还删除了每个环境变量并从头开始。然后我重新制作了两个虚拟版本,创建了一个名为wingqvist的新django项目,git拉了fadderjobb项目。这花了一点时间,但是(wingqvist(和(fadderjobb(中的所有内容都可以在所需的设置下按预期工作。

编辑:

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

最新更新