导入错误:在运行 collectstatic 时没有名为 rest_framework 的模块

利坦巴拉·乔汉

我发现很多问题都有相同的错误,但没有一个解决我问题的实际原因,所以我发布了这个。我在我的(数字海洋)Linux 生产服务器中遇到了这个问题。

我在virtualenv中有python 3.5.2,在机器中有python2.7.12。我已经使用命令在 virtualenv 中安装了 djangorestframeworkpip install djangorestframework但没有在实际机器中安装它(在 2.7 上)

venv 中的 python3 正在工作并且可以正常导入 rest_framework:

(venv) myname@server:/www/site$ python
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import rest_framework
>>> exit()

机器中的 python2 正在工作并且没有导入 rest_framework 因为它没有安装。

myname@server:/www/site$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import rest_framework
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named rest_framework
>>> exit()

在 virtualenv 中运行 collectstatic 命令时,我收到以下错误。它似乎是在 python2.7 中而不是在 virtualenv 中寻找包。

(venv) myname@server:/www/site$ sudo python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 341, in execute
    django.setup()
  File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/usr/local/lib/python2.7/dist-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 rest_framework

我的问题是,包是否也必须存在于 venv 之外的服务器机器中?如果是这样,为什么?我应该在 py2.7 上的服务器中安装 rest_framework 吗?如果我这样做,它可能会破坏某些东西吗?

利诺维亚

(venv) myname@server:/www/site$ sudo python manage.py collectstatic

问题在于sudo这里的使用它丢弃环境以使用目标帐户的环境,因此丢弃您的虚拟环境。如果您想保留它,您可能应该使用该-E标志来保护环境:

(venv) myname@server:/www/site$ sudo -E python manage.py collectstatic

您也可以直接调用虚拟环境的 python,这样您就无需事先设置可视环境:

 (venv) myname@server:/www/site$ which python
 <path-to-python>
 (venv) myname@server:/www/site$ sudo <path-to-python> manage.py collectstatic

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ModuleNotFoundError:没有名为“ rest_framework”的模块。如何解决此错误?

ModuleNotFoundError: 没有名为“rest_framework”的模块

尝试加载“rest_framework.templatetags.rest_framework”时引发导入错误:没有名为 url 的模块

Django Rest Framework-没有名为rest_framework的模块

Django Rest Framework没有名为rest_framework的模块但已安装

ModuleNotFoundError:没有名为“ rest_framework”的模块,我已经安装了djangorestframework

如何修复 ModuleNotFoundError: 在 Ubuntu 中没有名为“rest_framework”的模块

导入错误:没有名为 rest_framework_extensions.cache.mixins 的模块

Django 1.8和Rest Framework 3.7中的“导入错误:没有名为urls的模块”

ModuleNotFoundError:导入模块时没有名为“ x”的模块

没有名为rest_authusers的模块错误

尝试使用django rest框架运行django时没有名为http_client的模块错误

ModuleNotFoundError:导入mysql时没有名为“_version”的模块

从mgltools运行PMV时出现“导入错误:没有名为oldnumeric的模块”

导入错误:运行 Dataflow 作业时没有名为 language_v1.gapic 的模块

从Python运行QGIS时没有名为sip的模块

运行uWSGI时没有名为flask的模块

运行tox时“没有名为pip的模块”

没有名为praw的模块错误

没有名为pytesseract的模块错误

AWS Lambda 返回无法导入模块“main”:存在模块时没有名为“main”的模块

ModuleNotFoundError:没有名为“rest_framework.authentications”的模块

ModuleNotFoundError:没有名为“rest_framework.simplejwt”的模块

导入错误:使用 manage.py 运行服务器时没有名为 TestModel 的模块

导入错误:使用pickle.load时没有名为“ utils”的模块

导入 Spacy 时出现 Jupyter Notebook Python 错误:没有名为 click._bashcomplete 的模块

Django-导入错误:没有名为* .urls的模块

导入错误:没有名为 kek.ccache 的模块

导入错误:没有名为 ntlk 的模块