【发布时间】:2019-09-11 07:38:51
【问题描述】:
我正在将一个 Django 网站从 Python 2 转换为 Python 3。为此,我在整个项目上运行了 2to3。现在,在运行服务器时(在 Python 2 中运行良好),OverflowError 出现,如第一个代码块所示。下面的块显示manage.py 文件。
我在其他地方读过这可能是与 int/float 相关的问题,但我不太确定如何处理与此相关的迭代器。
(env) user:languages user$ python3 manage.py runserver
Fatal Python error: initsite: Failed to import the site module
Traceback (most recent call last):
File ".../src/languages/env/bin/../lib/python3.7/site.py", line 66, in <module>
import os
File ".../src/languages/env/bin/../lib/python3.7/os.py", line 661, in <module>
from _collections_abc import MutableMapping
File "...src/languages/env/bin/../lib/python3.7/_collections_abc.py", line 45, in <module>
longrange_iterator = type(iter(list(range(1 << 1000))))
OverflowError: Python int too large to convert to C ssize_tappleperson
#!/usr/bin/env python3
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "site.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
我希望 manage.py 能够正常运行服务器并生成网站,但它却因上述溢出错误而挂起。
【问题讨论】:
-
你在使用什么样的系统(64位/32位)以及你是如何安装
python3.7的? -
您是否在不同的 Python 实现下运行?您在此处的设置似乎很不正常……没有理由在该行上失败。 :-(
-
@FlyingTeller 64 位 osx,python 3.7 安装 virtualenv。
标签: python django python-2to3