簡體   English   中英

manage.py - 導入錯誤:沒有名為 django 的模塊

[英]manage.py - ImportError: No module named django

我只是通過將所有文件復制到/var/www/some/dir/djangoApp將一個工作 django 應用程序從 Windows 系統移植到 ubuntu 。 但是現在,當執行

python manage.py runserver 8080

我收到錯誤:

ImportError: no module named django

我已經使用python setup.py install安裝了新版本的 django 到/usr/local/lib/python2.7/dist-packages/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

由於您剛剛遷移到 UNIX 環境,我建議您也遷移到此類平台上的最佳實踐。

  1. 下載畫中畫

    sudo apt-get install python-pip

  2. 下載並安裝 virtualenv 為您的應用程序設置一個單獨的 python 虛擬環境。 這將允許您運行不同風格的 django 和其他軟件而不會發生沖突。

    sudo pip install virtualenv

  3. 通過運行創建虛擬環境。 您將獲得一個名為 myvirtualenvironment 的文件夾,其中包含一個 bin 文件夾和一些可執行文件。

    virtualenv myvirtualenvironment --no-site-packages

  4. 為了告訴您的 shell 您正在使用新創建的虛擬環境,您需要運行/myvirtualenvironment/bin/的 activate 腳本

    source myvirtualenvironment/bin/activate

  5. 現在您可以專門為該虛擬環境安裝 django。

    pip install djangopip install django==1.6取決於您要安裝的版本。 如果不指定,將安裝最新版本。

  6. 現在,將您的 Django 項目遷移到/myvirtualenvironment/並運行 runserver 命令。

有時,目錄中有一些 .pyc 文件,並且您不會從控制台收到任何錯誤。 嘗試從 pip 安裝 Django。

sudo pip install django

最佳實踐建議創建一個 requirements.txt 文件(來自您的 Windows 安裝)

pip freeze > requirements.txt

然后創建一個新的 virutalenv 來安裝每個包

mkvirtualenv  myapp
pip install -r requirements.txt 

我在遇到同樣的錯誤后登陸了這個頁面(在一個我幾個月來一直在積極開發的網站上)。 對我來說,@asaji 的回答提醒我忘記啟動我的虛擬環境。

啟動我的 Virtual Env 后. Scripts/activate . Scripts/activate效果很好!

對於(可能)非常小的問題來說,這似乎是一項相當大的工作。

我遇到了這個確切的問題,它在一天工作,然后第二天就不再工作了。 總的來說,我對 Linux 和 Django 還是很陌生,但對 python 非常了解,所以除了“虛擬環境”之外,我真的不知道該去哪里找

我再次開始安裝虛擬環境(就像有些人建議的那樣)但是不要!

至少在您嘗試過並考慮一下之前不會:

您是否將虛擬環境安裝為臨時環境(您是否可能像這樣安裝它:“ pip install pipenv ”?)

如果你做了(就像你應該做的那樣),你將在當前的 django 項目 2 文件周圍有一個地方 - pipfile & pipfile.lock

打開你的終端,cd到這些文件的路徑(同一個文件夾)

在終端中寫入:pipenv shell

BOOM:您剛剛重新激活了“TEMPORARY”虛擬環境,Django 完全按照預期、意願和做了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM