繁体   English   中英

将 Django 项目从 windows 导入到 linux 时出错

[英]Error importing a Django project from windows to linux

我在 Windows 7 计算机上使用 python3 和 django 在一个项目中工作,现在我在家中使用我的 GNU/Linux 并且我试图让它工作,但我有一些错误。

我将整个东西解包到一个文件夹中,在那个文件夹中我用 django 安装了一个 virtualenv,在文件夹中我把我拥有的项目,然后我做

python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py runserver

我登录服务器,一切都在那里,每个数据、模型等。

到目前为止效果很好。 但后来我尝试运行脚本并收到此错误:

mod = importlib.import_module(self.SETTINGS_MODULE)   File "/home/alex/proyectosP/ahq/11_env/lib/python3.4/importlib/__init__.py",
line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)   File "<frozen importlib._bootstrap>", line 2254, in _gcd_import   File
"<frozen importlib._bootstrap>", line 2237, in _find_and_load   File
"<frozen importlib._bootstrap>", line 2212, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 321, in
_call_with_frames_removed   File "<frozen importlib._bootstrap>", line 2254, in _gcd_import   File "<frozen importlib._bootstrap>", line
2237, in _find_and_load   File "<frozen importlib._bootstrap>", line
2224, in _find_and_load_unlocked 
ImportError: No module named 'subastas'

有问题的脚本有这个标题

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "subastas.settings")
import django
django.setup()

我复制了我在另一台计算机上的所有内容

subastas/
|-- ah
|   |-- admin.py
|   |-- api
|   |   |-- apiFunciones.py
|   |   |-- __init__.py
|   |   `-- __pycache__
|   |       |-- apiFunciones.cpython-35.pyc
|   |       `-- __init__.cpython-35.pyc
|   |-- apps.py
|   |-- busquedas
|   |   |-- busquedas.py
|   |   |-- datos.py
|   |   `-- __pycache__
|   |       |-- busquedas.cpython-35.pyc
|   |       `-- datos.cpython-35.pyc
|   |-- config.py
|   |-- correos
|   |   |-- funciones.py
|   |   |-- __init__.py
|   |   `-- __pycache__
|   |       |-- funciones.cpython-35.pyc
|   |       `-- __init__.cpython-35.pyc
|   |-- graficas
|   |   |-- GraficasFunciones.py
|   |   |-- GraficaTest.py
|   |   `-- __init__.py
|   |-- __init__.py
|   |-- logs
|   |   `-- registro.txt
|   |-- migrations
|   |   |-- 0001_initial.py
|   |   |-- 0002_auto_20170125_1727.py
|   |   |-- __init__.py
|   |   `-- __pycache__
|   |       |-- 0001_initial.cpython-35.pyc
|   |       |-- 0002_auto_20170125_1727.cpython-35.pyc
|   |       `-- __init__.cpython-35.pyc
|   |-- models.py
|   |-- obtenerCotizaciones.py
|   |-- __pycache__
|   |   |-- admin.cpython-35.pyc
|   |   |-- config.cpython-35.pyc
|   |   |-- __init__.cpython-35.pyc
|   |   `-- models.cpython-35.pyc
|   |-- resultados
|   |   |-- graficas
|   |   |   |-- evolucionFrasco de Agilidad.svg
|   |   |   |-- evolucionFrasco de Fuerza.svg
|   |   |   |-- evolucionFrasco de Intelecto.svg
|   |   |   `-- evolucionRosaluz.svg
|   |   |-- Rozaluz.csv
|   |   `-- temporal.json
|   |-- tests.py
|   |-- views.py
|   `-- zips
|       |-- testFactory.py
|       `-- zfactory.py
|-- db.sqlite3
|-- manage.py
`-- subastas
    |-- __init__.py
    |-- __pycache__
    |   |-- __init__.cpython-35.pyc
    |   |-- settings.cpython-35.pyc
    |   |-- urls.cpython-35.pyc
    |   `-- wsgi.cpython-35.pyc
    |-- settings.py
    |-- urls.py
    `-- wsgi.py

尝试将您的根文件夹添加到 Python 的 PYTHONPATH 环境变量中 - 这样,它会找出subastasah作为可以找到的 Python 包。

在 bash 提示符下,站在您的根“subastas”路径输入:

export PYTHONPATH=`pwd`:$PYTHONPATH

但实际上,这只是一种解决方法 - 您真正需要的是使用setup.py文件配置您的项目,该文件使用 setuptools - https://pypi.python.org/pypi/setuptools ,只需使用 PIP在本地安装它(使用pip develop命令),这也将解决您的依赖问题。

此外,如果你不是,你真的应该为你的项目使用版本控制系统。

是设置和问题的总和:pip + virtualenv + virtualenvwrapper 见tips-using-pip-virtualenv-virtualenvwrapper

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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