【问题标题】:Python package recognized in Pycharm, not in terminal在 Pycharm 中识别的 Python 包,而不是在终端中
【发布时间】:2016-12-01 19:30:30
【问题描述】:

我正在开发一个导入 django-imagekit 的 Django 项目;在我的 Windows 机器上一切正常。不过,在我的 Linux-Ubuntu 笔记本电脑上,Pycharm 可以识别编辑器中的包,它列在项目解释器的包中,但无法从命令行识别:

    simon@Simon-Swanky:~/PycharmProjects/tcspt$ python manage.py check
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/simon/.local/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/home/simon/.local/lib/python2.7/site-packages/django/core/management/__init__.py", line 327, in execute
    django.setup()
  File "/home/simon/.local/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/simon/.local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/home/simon/.local/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/simon/PycharmProjects/tcspt/assetmanage/models.py", line 3, in <module>
    from imagekit.models import ProcessedImageField
ImportError: No module named imagekit.models

它似乎在寻找 python 2 的包,但我在这个项目中使用 python 3。我尝试了一些方法,例如添加项目变量的路径,但到目前为止我无法让它工作。

尝试从 python 2 的 shell 导入 imagekit:

Python 2.7.11+ (default, Apr 17 2016, 14:00:29) 
[GCC 5.3.1 20160413] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import imagekit
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named imagekit

尝试从 python 3 的 shell 导入 imagekit:

>>> import imagekit
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.5/dist-packages/imagekit/__init__.py", line 2, in <module>
    from . import conf
  File "/usr/local/lib/python3.5/dist-packages/imagekit/conf.py", line 5, in <module>
    class ImageKitConf(AppConf):
  File "/usr/local/lib/python3.5/dist-packages/appconf/base.py", line 74, in __new__
    new_class._configure()
  File "/usr/local/lib/python3.5/dist-packages/appconf/base.py", line 100, in _configure
    value = getattr(obj._meta.holder, prefixed_name, default_value)
  File "/home/simon/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 55, in __getattr__
    self._setup(name)
  File "/home/simon/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 41, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting IMAGEKIT_DEFAULT_CACHEFILE_BACKEND, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

【问题讨论】:

  • 检查您使用的是适当的 python SDK。运行脚本时必须保证pycharm和终端运行相同的python环境

标签: python django packages django-imagekit


【解决方案1】:

如果您使用的是 Python 3,那么您应该使用 python3 manage.py check。使用虚拟环境可能会更好,在这种情况下,您需要在运行python manage.py check 之前激活虚拟环境。

在 Python 3 shell 中导入失败,因为您没有设置 DJANGO_SETTINGS_MODULE 环境变量(有关详细信息,请参阅 the docs)。最简单的解决方法是使用 Django shell,它会为您解决这个问题。

$ python3 manage.py shell
>>> import imagekit

【讨论】:

  • 使用python3成功了,非常感谢!我会检查 DJANGO_SETTINGS_MODULE。
猜你喜欢
  • 1970-01-01
  • 2016-09-11
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 2020-12-07
  • 1970-01-01
相关资源
最近更新 更多