gpt4 book ai didi

python - 属性错误 : 'module' object has no attribute 'new'

转载 作者:行者123 更新时间:2023-12-02 11:07:20 24 4
gpt4 key购买 nike

我有一些我想运行的代码。
我是 python 新手,也是 stackoverflow

这是python程序:

# Circle Inversion Fractals (Apollonian Gasket) (Escape-time Algorithm)
# FB36 - 20131031
import math
import random
from collections import deque
from PIL import Image
imgx = 512; imgy = 512
image = Image.new("RGB", (imgx, imgy))
pixels = image.load()
n = random.randint(3, 6) # of main circles
a = math.pi * 2.0 / n
r = math.sin(a) / math.sin((math.pi - a) / 2.0) / 2.0 # r of main circles
h = math.sqrt(1.0 - r * r)
xa = -h; xb = h; ya = -h; yb = h # viewing area
cx = [0.0]; cy = [0.0]; cr = [1.0 - r] # center circle
for i in range(n): # add main circles
cx.append(math.cos(a * i))
cy.append(math.sin(a * i))
cr.append(r)
maxIt = 64 # of iterations
for ky in range(imgy):
print str(100 * ky / (imgy - 1)).zfill(3) + "%"
for kx in range(imgx):
x = float(kx) / (imgx - 1) * (xb - xa) + xa
y = float(ky) / (imgy - 1) * (yb - ya) + ya
queue = deque([])
queue.append((x, y, 0))
while len(queue) > 0: # iterate points until none left
(x, y, i) = queue.popleft()
for k in range(n + 1):
dx = x - cx[k]; dy = y - cy[k]
d = math.hypot(dx, dy)
if d <= cr[k]:
dx = dx / d; dy = dy / d
dnew = cr[k] ** 2.0 / d
xnew = dnew * dx + cx[k]
ynew = dnew * dy + cy[k]
if xnew >= xa and xnew <= xb and ynew >= ya and ynew <= yb:
if i + 1 == maxIt: break
queue.append((xnew, ynew, i + 1))
pixels[kx, ky] = (i % 16 * 16 , i % 8 * 32, i % 4 * 64)
image.save("CircleInversionFractal_" + str(n) + ".png", "PNG")

当我运行它时,我收到一条错误消息,但我不知道如何解决它。
 Traceback (most recent call last):
File "U:\Personal\PythonFiles\Python Program Examples\Circle Inversion Fractals.py", line 9, in <module>
image = Image.new("RGB", (imgx, imgy))
AttributeError: 'module' object has no attribute 'new'

这个回溯是什么意思?

最佳答案

这意味着您正在尝试使用名称 new在模块对象上:

>>> import sys
>>> sys.new
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'new'

这意味着 sys模块没有属性 new这里。治疗没关系 new作为可调用(函数、方法、类等),在表达式 sys.new() 中姓名 new将首先作为属性查找。

如果您尝试使用记录为具有 .new() 的模块方法(例如 sha.new() hashlib.new() ,然后确保您的路径中没有 另一个 模块。当您尝试使用时,不要命名您自己的脚本 sha.py导入标准库模块 sha!

您可以通过打印 .__file__ 来检查模块的导入位置。文件名:
 print sha.__file__

如果它不是您的 Python 安装中的文件名,您可能需要调查为什么您的路径中有一个额外的文件并重命名该文件或将其移到一边。

关于python - 属性错误 : 'module' object has no attribute 'new' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21124502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com