Skip to main content
 首页 » 编程设计

python之将 Django 项目从 Windows 导入到 Linux 时出错

2024年10月17日31zhoujg

我在 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 环境变量 - 这样,它会发现 subastas 和 ah 作为可以找到的 Python 包。

从 bash 提示符,站在你的根“subastas”路径类型:

export PYTHONPATH=`pwd`:$PYTHONPATH 

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

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