我只是将一个正在运行的django应用程序从Windows系统移植到ubuntu,只需将所有文件复制到/var/www/some/dir/djangoApp
即可。但现在,执行时
python manage.py runserver 8080
我收到错误:
ImportError: no module named django
我已经安装了python setup.py install
到/usr/local/lib/python2.7/dist-packages/django/
的新版django,并添加了PYTHONPATH的路径。
linux系统没有由我维护,并且安装了许多python版本。
在shell中调用>>> import django
不会引发ImportError。
我很困惑。请帮帮我!
这是来自控制台的追溯:
Traceback (most recent call last):
File "manage.py", line 13, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 280, in execute
translation.activate('en-us')
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/__init__.py", line 130, in activate
return _trans.activate(language)
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 188, in activate
_active.value = translation(language)
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 177, in translation
default_translation = _fetch(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 159, in _fetch
app = import_module(appname)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
ImportError: No module named django
答案 0 :(得分:8)
由于您刚刚迁移到UNIX环境,我建议您也迁移到这样的平台上的最佳实践。
下载PIP
sudo apt-get install python-pip
下载并安装virtualenv,为您的应用设置单独的python虚拟环境。这将允许您运行不同风格的django和其他软件而不会发生冲突。
sudo pip install virtualenv
通过运行创建虚拟环境。您将获得一个名为myvirtualenvironment的文件夹,其中包含bin文件夹和一些可执行文件。
virtualenv myvirtualenvironment --no-site-packages
为了告诉您的shell您正在使用新创建的虚拟环境,您需要运行/myvirtualenvironment/bin/
source myvirtualenvironment/bin/activate
现在您可以专门为该虚拟环境安装django。
pip install django
或pip install django==1.6
取决于您要安装的版本。如果您没有指定,将安装最新版本。
现在,在/myvirtualenvironment/
内迁移您的Django项目并运行runserver命令。
答案 1 :(得分:2)
有时目录中有一些.pyc文件,您不会从控制台收到任何错误。试图从pip安装Django。
sudo pip install django
最佳做法建议创建requirements.txt文件(从Windows安装)
pip freeze > requirements.txt
然后创建一个新的virutalenv来安装每个包
mkvirtualenv myapp
pip install -r requirements.txt
答案 2 :(得分:0)
在遇到相同的错误后,我进入了该页面(在一个网站上,我几个月来一直在积极开发)。对我来说,@ asaji的回答提醒我,我忘记了启动虚拟环境。
启动我的虚拟环境. Scripts/activate
后,效果很好!
答案 3 :(得分:0)
对于(MIGHT)很小的问题,这似乎是一项艰巨的工作。
我遇到了这个确切的问题,它有一天在工作,然后第二天就不再工作了。一般来说,我对Linux和Django还是很陌生,但是对python很了解,所以除了“虚拟环境”之外,我真的不知道该在哪里查找
我又开始安装虚拟环境(就像某些人建议的那样),但是不要!
至少在您尝试过并仔细考虑之前,不会:
您是否已将虚拟环境安装为临时环境(您可能是这样安装的:“ pip install pipenv ”?)
如果您做了(就像应该做的那样),您将在当前的django项目中找到2个文件- pipfile 和 pipfile.lock
打开您的终端,cd到那些文件(相同文件夹)的路径
在终端中写入:pipenv shell
BOOM:您刚刚重新激活了“ TEMPORARY”虚拟环境,并且Django可以按预期,将要完成的方式完全正常工作。