将Django项目从Windows导入linux时出错

时间:2017-01-25 23:12:25

标签: python django

我使用来自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

2 个答案:

答案 0 :(得分:1)

尝试将您的根文件夹添加到Python的PYTHONPATH环境变量中 - 这样,它会找到# serverless.yaml service: aws-hello provider: aws runtime: nodejs4.3 vpc: securityGroupIds: — "sg-123456" subnetIds: — "subnet-abc1" — "subnet-abc1" — "subnet-abc1" functions: foo: # inherits the VPC config handler: src/handler.foo bar: # overwrites the VPC config handler: src/handler.bar vpc: securityGroupIds: — "sg-999999" subnetIds: — "subnet-zzz9" subastas作为可以找到的Python包。

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

ah

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

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

答案 1 :(得分:1)

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