所以我希望用Django构建一些简单的东西,这是我使用Python的第一行代码,我是一个菜鸟,但我已经与其他平台合作。
我确实喜欢教程说并将Django安装到我的系统中进行了代码测试,看它是否正常工作,通过。 Django,setuptool和pip都已安装,路径变量全部设置完毕。
我做了
django-admin startproject mysite
有效。
然后我去了
python manage.py migrate
我收到了一个错误,
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\__init__.py", line 338, in execute_from_command_line
utility.execute()
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\__init__.py", line 190, in fetch_command
klass = load_command_class(app_name, subcommand)
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\__init__.py", line 40, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\importlib\
__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 661, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\commands\migrate.py", line 19, in <module>
from django.db.migrations.autodetector import MigrationAutodetector
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\autodetector.py", line 13, in <module>
from django.db.migrations.questioner import MigrationQuestioner
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\questioner.py", line 12, in <module>
from .loader import MIGRATIONS_MODULE_NAME
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\loader.py", line 10, in <module>
from django.db.migrations.recorder import MigrationRecorder
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\recorder.py", line 9, in <module>
class MigrationRecorder(object):
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\recorder.py", line 23, in MigrationRecorder
class Migration(models.Model):
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\models\base.py", line 309, in __new__
new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\apps\registry.py", line 223, in register_model
self.clear_cache()
File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\apps\registry.py", line 344, in clear_cache
for model in self.get_models(include_auto_created=True):
TypeError: get_models() missing 1 required positional argument: 'self'
我还没有使用默认代码更改任何内容。我只想进行迁移,然后启动服务器以查看默认的启动画面。
顺便说一下,服务器启动命令不起作用。
我不知道这里有什么问题,我做了怎么开始教程说,Django让我很尴尬,不让我通过入门教程。 :(
答案 0 :(得分:3)
简而言之
要开始学习Python和Django,我个人认为在Python 3.3
上运行它是目前的最佳选择。
稍微长一点
正如评论中所写,我怀疑你遇到了与Django 1.8和Python 3.5不兼容的问题。 Django 1.9将是第一个应该支持Python 3.5的版本。有关受支持的版本see this table的列表。
Python 3.4目前是最新的稳定Python版本,因此选择3.3
可确保您不会遇到尚未针对3.4进行测试和更新的第三方软件包中的小错误。
此外,也许更重要一点:许多提供Python托管的商业托管公司可能没有最新的稳定Python可用。因此,当您要启动您的网站时,您可能需要使用旧版本进行检查。
Python 2与Python 3
要使代码运行,请安装最新的稳定版Python 2.7
或Python 3.3
。原因是Django和Python可用的第三方软件包的庞大生态系统。通过使用Python 2.7,您仍将获得最高的兼容性。也就是说,Python 3是未来的广泛使用的库和包中的支持非常高,所以在大多数用例中使用它都很好。
请记住,只要您正在查看要安装的新软件包(例如使用pip install <package_name>
),请检查软件包是否与Python 3兼容。{{1}中通常会对其进行评论。这个信息很容易找到。