Backporting from 3 to 2.7: ImportError: cannot import name
Backporting from 3 to 2.7: ImportError: cannot import name
读完 this 并哭了很久之后,我正在尝试让我的 Django 应用程序与 Python 2.7 一起工作。
这是我的 Django 网络目录:
├── locale
│ ├── en
│ ├── fr
│ └── sv
├── produits
│ ├── migrations
│ └── templatetags
├── pyweb
├── templates
│ └── produits
├── third_party
│ ├── authomatic_0_1_0
│ ├── defusedxml-0.4.1
│ ├── google_appengine_1_9_25
│ ├── python-openid_2_2_5
│ └── python3-openid
└── uploads
需要注意的最重要的一点是,我已尝试将所有 "external" 模块添加到文件夹 third_party
。
在我的 views.py
中,以下代码有效:
from third_party.authomatic_0_1_0 import authomatic
from third_party.authomatic_0_1_0.authomatic import adapters
from third_party.authomatic_0_1_0.authomatic.providers import oauth1, oauth2
它正在运行 因为我在 settings.py
的开头添加了那些行:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR+'/third_party/defusedxml-0.4.1')
sys.path.append(BASE_DIR+'/third_party/python3-openid')
sys.path.append(BASE_DIR+'/third_party/google_appengine_1_9_25')
sys.path.append(BASE_DIR+'/third_party/authomatic_0_1_0')
但是现在,在 python 2.7 中它不再起作用了。我应该怎么做才能让它发挥作用? Python 中的最佳做法是什么(因为 Pycharm 无法识别 third_party
的所有子文件夹)?
两个问题:(1)编码,所以我在所有文件的开头都加了:
# coding=UTF-8
(2) 装饰器 python_2_unicode_compatible
:我所有实现了 __str__
的模型都需要这个,例如:
@python_2_unicode_compatible
class Texte(models.Model):
texte = models.CharField(max_length=200)
def __str__(self):
return self.texte
有关详细信息,请参阅 here
读完 this 并哭了很久之后,我正在尝试让我的 Django 应用程序与 Python 2.7 一起工作。
这是我的 Django 网络目录:
├── locale
│ ├── en
│ ├── fr
│ └── sv
├── produits
│ ├── migrations
│ └── templatetags
├── pyweb
├── templates
│ └── produits
├── third_party
│ ├── authomatic_0_1_0
│ ├── defusedxml-0.4.1
│ ├── google_appengine_1_9_25
│ ├── python-openid_2_2_5
│ └── python3-openid
└── uploads
需要注意的最重要的一点是,我已尝试将所有 "external" 模块添加到文件夹 third_party
。
在我的 views.py
中,以下代码有效:
from third_party.authomatic_0_1_0 import authomatic
from third_party.authomatic_0_1_0.authomatic import adapters
from third_party.authomatic_0_1_0.authomatic.providers import oauth1, oauth2
它正在运行 因为我在 settings.py
的开头添加了那些行:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR+'/third_party/defusedxml-0.4.1')
sys.path.append(BASE_DIR+'/third_party/python3-openid')
sys.path.append(BASE_DIR+'/third_party/google_appengine_1_9_25')
sys.path.append(BASE_DIR+'/third_party/authomatic_0_1_0')
但是现在,在 python 2.7 中它不再起作用了。我应该怎么做才能让它发挥作用? Python 中的最佳做法是什么(因为 Pycharm 无法识别 third_party
的所有子文件夹)?
两个问题:(1)编码,所以我在所有文件的开头都加了:
# coding=UTF-8
(2) 装饰器 python_2_unicode_compatible
:我所有实现了 __str__
的模型都需要这个,例如:
@python_2_unicode_compatible
class Texte(models.Model):
texte = models.CharField(max_length=200)
def __str__(self):
return self.texte
有关详细信息,请参阅 here