pyscript与python 原生idle的表现不一致是为什么?

2013-08-24 18:12:07 +08:00
 jianghu52
python版本 2.7
代码:
import copy
a = [1, 2, 3, 4, ['a', 'b']]
c = copy.copy(a)
a[4].append('4444')
print(c)

这段代码在pyscript上跑。提示 [TypeError: 'module' object is not callable]
在python原生的idle上运行,一切正常。

不知道为什么?后来装了一个pycharm,结果也提示 [TypeError: 'module' object is not callable] 。求解。
从现象看好像是我没有导入python一样,但是我实验过引其他的包比如os等,一切正常。就是copy包不正常。求解。
另外,有没有一种ide可以按一个键就调出python的api的?就好像eclipse能调出jdk一样?
3442 次点击
所在节点    Python
12 条回复
phuslu
2013-08-24 20:05:52 +08:00
运行了一下,挺正常。
nulloo
2013-08-24 20:19:20 +08:00
pyscript默认使用远程解释器,单独开个python进程,用rpyc控制,某些运行结果和直接运行不同,改成本地试试
dreampuf
2013-08-24 22:12:33 +08:00
这一段一共有三个地方call func
你分别 print 出来,看看哪个对象错了

print(copy.copy, a[4].append, print)

解释器对象在调试的时候很容易污染
jianghu52
2013-08-24 22:16:16 +08:00
重装了一遍2.7.还是没好使。pyscript变成本地了。也还是不对。
jianghu52
2013-08-24 22:16:53 +08:00
@dreampuf 提示错误是在copy.copy上。
dreampuf
2013-08-24 22:21:48 +08:00
$ python -c "import copy; print copy.__file__"
/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy.pyc

把copy.__file__打印出来,看看是不是引用错的模块了
Mutoo
2013-08-25 09:52:21 +08:00
上次也遇到这种奇耙问题,提示的是 string 模块没有 xx 方法,在IDLE下正常,在subl里run就出问题,后来发现同一目录下有个叫 string.py 坑啊……
你看看目录下是否有与关键库重名的py的文件吧
jimmykuu
2013-08-25 10:36:49 +08:00
我从来不在编辑器或IDE中运行代码,只在命令行中运行,尽量接近最终运行环境来运行。不然碰到由于由于编辑器或者IDE引起的不一致问题或者BUG太费时间了。
fanzeyi
2013-08-25 10:49:12 +08:00
你有文件名叫 copy.py ?
jianghu52
2013-08-25 10:56:32 +08:00
@Mutoo 貌似就是这个问题。我的文件目录下有个copy.py的文件。谢谢。
jianghu52
2013-08-25 10:57:00 +08:00
@dreampuf 确实,引的是我文件目录下的copy.py文件
jianghu52
2013-08-25 10:57:30 +08:00
@fanzeyi 呵呵。虽然不是我建立的,但是确实有这么个文件。。。。orc

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/80083

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX