与celery和billiard的python virtualenv ImportError

You*_*wad 1 django amazon-ec2 virtualenv celery python-2.7

我正在使用python 2.7.10构建一个新的amazon实例作为默认值.在我运行了我的机器配置脚本并且真相到来之后,芹菜给了我一个导入,所以我调试了问题给billard.

包看起来是正确的路径,即

sudo find -name "billiard"
./srv/ia-live/lib64/python2.7/dist-packages/billiard
Run Code Online (Sandbox Code Playgroud)

其中ia-live是我的virtualenv的道路.检查via python virtualenv可执行文件中的路径

import sys
sys.path

['',
 '/srv/ia-live/bin',
 '/srv/ia-live/src/django-devserver-redux-master',
 '/usr/lib/python2.7',
 '/srv/ia-live/local/lib64/python2.7/site-packages',
 '/srv/ia-live/local/lib/python2.7/site-packages',
 '/srv/ia-live/lib64/python2.7',
 '/srv/ia-live/lib/python2.7',
 '/srv/ia-live/lib64/python2.7/site-packages',
 '/srv/ia-live/lib/python2.7/site-packages',
 '/srv/ia-live/lib64/python2.7/lib-dynload',
 '/srv/ia-live/local/lib/python2.7/dist-packages',
 '/srv/ia-live/local/lib/python2.7/dist-packages',
 '/srv/ia-live/lib/python2.7/dist-packages',
 '/usr/lib64/python2.7',
 '/usr/lib/python2.7',
 '/srv/ia-live/local/lib/python2.7/dist-packages/IPython/extensions',
 '/home/ec2-user/.ipython']
Run Code Online (Sandbox Code Playgroud)

这似乎是正确的,但当我这样做

import billiard
ImportError: No module named billiard
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会有问题

You*_*wad 5

我能够找出问题所在.它是ec2-ami附带的默认python27 virtualenv和devel包

对我来说,我不得不更新系统点和系统virutalenv

运用

sudo -i
pip install --upgrade pip
pip install --upgrade virtualenv
Run Code Online (Sandbox Code Playgroud)

并且我努力运行/ usr/bin/virtualenv来创建一个新的virtualenv.它解决了我的问题.

希望它也有助于其他人.