我是编程方面的新手,我想按照Djangogirls教程进行操作,但现在我已经被困了。 在本教程中,我是here:
要为我们的博客创建数据库,让我们在控制台中运行以下命令:python manage.py migrate(我们需要在包含manage.py文件的djangogirls目录中)。如果情况顺利,你应该看到这样的事情:......
教程中没有失败选项,但我收到错误消息:
import tkinter as tk
import tkinter.ttk as ttk
from ctypes import windll
GWL_EXSTYLE=-20
WS_EX_TOOLWINDOW=0x00000080
def set_toolwindow(root):
hwnd = windll.user32.GetParent(root.winfo_id())
style = windll.user32.GetWindowLongPtrW(hwnd, GWL_EXSTYLE)
style = style | WS_EX_TOOLWINDOW
res = windll.user32.SetWindowLongPtrW(hwnd, GWL_EXSTYLE, style)
# re-assert the new window style
root.wm_withdraw()
root.after(10, lambda: root.wm_deiconify())
def main():
root = tk.Tk()
root.wm_title("AppWindow Test")
button = ttk.Button(root, text='Exit', command=lambda: root.destroy())
button.place(x=10,y=10)
#root.overrideredirect(True)
root.after(10, lambda: set_toolwindow(root))
root.mainloop()
if __name__ == '__main__':
main()
我做错了什么?我该怎么办?
我有Python 3.7.0b1
非常感谢您的帮助:)
答案 0 :(得分:62)
你没有做错任何事;这是Django和Python 3.7之间的问题。 Django has a fix,但该修复尚未成为新版本。
您可以同时安装稳定版本的Python,Python 3.6。
答案 1 :(得分:10)
答案 2 :(得分:6)
这是Django和Python 3.7之间的a known incompatibility。修复程序已合并到Django 2.x branches中,并反向移植到1.11 branch。
要解决此问题,只需将Django至少升级到1.11.17 (or 2.x)版,或者将Python降级到3.6版。
答案 3 :(得分:2)
Django Girls tutorial version in English具有just switched to Django 2.0,应使其与Python 3.7兼容。 (Django 2.0包含a backport中提到的修订的Ry-'s answer。)
所以现在开始本教程的每个人都应该对Python 3.7没问题。
如果您已经开始本教程,则必须在Django installation一章中重新开始。您将需要在新目录中执行此操作(删除或重命名当前的djangogirls
目录,或为新目录选择其他名称)作为
django-admin print startproject mysite .
取决于使用的Django版本。
答案 4 :(得分:1)
Python 3.7仅支持Django == 2.2,因此升级Django版本将解决您的问题
pip3 install django --upgrade
答案 5 :(得分:0)
根据Django's FAQ,Django 1.11.x与Python 3.7不兼容。
Django 1.11.x于2017年12月2日到达end of mainstream support,并且仅收到数据丢失和安全修补程序,直到使用寿命终止。
答案 6 :(得分:0)
以上所有答案均已表明Django和Python版本之间存在不匹配的情况。
在创建虚拟环境时,请运行以下命令
git log --pretty=format:"%h %s %an %ad" --date=relative
在创建虚拟环境时,它将使用 Python3.6 。
现在,您可以在此虚拟环境中安装所有依赖项。
答案 7 :(得分:0)
请按照以下步骤解决此问题:
virtualenv
site-packages
django
contrib
目录admin
目录。在这里您可以找到python文件widgets.py
if params:
related_url += '?' + '&'.join(
related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())
'%s=%s' % (k, v) for k, v in params.items(),
)
您需要将其更改为以下内容
if params:
related_url += '?' + '&'.join(
related_url += '?' + '&'.join('%s=%s' % (k, v) for k, v in params.items())
保存更改并再次执行迁移。
答案 8 :(得分:0)
我通过将 Django 升级到 Dajngo==1.11.29(Dajngo 1.11 的最后一个版本)解决了这个问题。我想我的 python 版本是 3.8.x。如果您不打算升级到 Django 2.x 或 3.x,请尝试一下