我在 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 命令),这也将解决您的依赖性问题。
而且,如果你不是,你真的应该为你的项目使用版本控制系统。
