简体   繁体   中英

When I run ./manage.py run server I get the error ImportError: No module named celery

I'm trying to run manage.py runserver from my virtual environment and when I do I get this message

    Traceback (most recent call last):
      File "./manage.py", line 10, in <module>
        execute_from_command_line(sys.argv)
      File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
        utility.execute()
      File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 302, in execute
        settings.INSTALLED_APPS
      File "/Library/Python/2.7/site-packages/django/conf/__init__.py", line 55, in __getattr__
        self._setup(name)
      File "/Library/Python/2.7/site-packages/django/conf/__init__.py", line 43, in _setup
        self._wrapped = Settings(settings_module)
      File "/Library/Python/2.7/site-packages/django/conf/__init__.py", line 99, in __init__
        mod = importlib.import_module(self.SETTINGS_MODULE)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
        __import__(name)
      File "/Users/ray/Desktop/sub_desk/myheroku/practice/src/gettingstarted/__init__.py", line 4, in <module>
        from .celery import app as celery_app
      File "/Users/ray/Desktop/sub_desk/myheroku/practice/src/gettingstarted/celery.py", line 6, in <module>
        from celery import Celery
    ImportError: No module named celery

Not only do I have celery, but it's also using python 2.7 from outside the virtenv. When I type which python while I'm in or out of the environment they both come from the same location which according to hitchhikers guide to python they should be seperate. What's going on? shouldn't it be using the python from within ythe virtual env?

then when I tried to pip install django-celery I got the following

    (practice) apples-MBP:src ray$ pip install django-celery
    Collecting django-celery
      Downloading django_celery-3.2.1-py2-none-any.whl (63kB)
        100% |████████████████████████████████| 71kB 2.9MB/s 
    Requirement already satisfied: django>=1.8 in /Library/Python/2.7/site-packages (from django-celery)
    Collecting celery<4.0,>=3.1.15 (from django-celery)
      Downloading celery-3.1.25-py2.py3-none-any.whl (526kB)
        100% |████████████████████████████████| 532kB 1.9MB/s 
    Collecting billiard<3.4,>=3.3.0.23 (from celery<4.0,>=3.1.15->django-celery)
      Using cached billiard-3.3.0.23-cp27-none-macosx_10_6_intel.whl
    Requirement already satisfied: pytz>dev in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from celery<4.0,>=3.1.15->django-celery)
    Collecting kombu<3.1,>=3.0.37 (from celery<4.0,>=3.1.15->django-celery)
      Using cached kombu-3.0.37-py2.py3-none-any.whl
    Collecting anyjson>=0.3.3 (from kombu<3.1,>=3.0.37->celery<4.0,>=3.1.15->django-celery)
      Using cached anyjson-0.3.3.tar.gz
    Collecting amqp<2.0,>=1.4.9 (from kombu<3.1,>=3.0.37->celery<4.0,>=3.1.15->django-celery)
      Using cached amqp-1.4.9-py2.py3-none-any.whl
    Installing collected packages: billiard, anyjson, amqp, kombu, celery, django-celery
    Exception:
    Traceback (most recent call last):
      File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
        status = self.run(options, args)
      File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 342, in run
        prefix=options.prefix_path,
      File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 784, in install
        **kwargs
      File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 851, in install
        self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
      File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
        isolated=self.isolated,
      File "/Library/Python/2.7/site-packages/pip/wheel.py", line 345, in move_wheel_files
        clobber(source, lib_dir, True)
      File "/Library/Python/2.7/site-packages/pip/wheel.py", line 323, in clobber
        shutil.copyfile(srcfile, destfile)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 83, in copyfile
        with open(dst, 'wb') as fdst:
    IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/_billiard.so'

First things first, in your virtual environment install Celery :

pip install -U Celery

If you get the IOError: [Errno 13] Permission denied: as shown on your example (which means that you have this problem and you can/should sholve it by following the provided link) then use:

sudo pip install -U Celery 

After that is done:

python manage.py runserver

and see if that fixes your problem.

Note:

You can set your project interpreter in PyCharm to your virtual environment

  1. Go to File > Settings > Project: > Project Interpreter.
  2. On the project interpreter click on the Cog icon and choose "Add Local"
  3. Find ~/.virtualenvs/<venv_name>/bin/python
  4. Apply then OK

Good luck :)

install celery in your virtualenv:

pip install django-celery

while in your virtualenv start the django app:

python manage.py runserver

A good check is to enter pip freeze wherever you're running this. It will print out all the installed packages.

以管理员身份运行cmd它对我来说一直都有效。

请尝试删除'/Library/Python/2.7/site-packages/_billiard'并重新安装。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM