首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Brython - TypeError中导入操作系统

无法在Brython - TypeError中导入操作系统
EN

Stack Overflow用户
提问于 2015-08-11 16:47:30
回答 1查看 528关注 0票数 1

我正在尝试在Brython中导入os模块,但无论我做什么,无论我尝试什么,我都无法做到。我得到以下错误(在Firefox控制台中):

代码语言:javascript
复制
"TypeError: obj is undefined for module os" brython.js:6329:21
"message: undefined" brython.js:6330:1
"filename: http://localhost:8000/src/brython.js" brython.js:6331:1
"linenum: 4418" brython.js:6332:1
"Javascript error" TypeError: obj is undefined
Stack-Trace:
$B.get_class@http://localhost:8000/src/brython.js:4418:5
$test@http://localhost:8000/src/brython.js:8873:1
$SetDict.__le__@http://localhost:8000/src/brython.js:8830:50
getattr/method@http://localhost:8000/src/brython.js:5039:8
$module<@http://localhost:8000/src/brython.js line 6329 > eval:966:41
@http://localhost:8000/src/brython.js line 6329 > eval:1:14
run_py@http://localhost:8000/src/brython.js:6329:1
import_py@http://localhost:8000/src/brython.js:6310:8
import_from_stdlib_static@http://localhost:8000/src/brython.js:6378:22
$B.$import@http://localhost:8000/src/brython.js:6454:57
@http://localhost:8000/src/brython.js line 3931 > eval:11:1
brython@http://localhost:8000/src/brython.js:3931:7
onload@http://localhost:8000/boolean/boolean.html:1:1
 brython.js:3940:43
"Traceback (most recent call last):
RuntimeError: TypeError: obj is undefined"

当我这样做的时候:

代码语言:javascript
复制
import os

def foo(ev):
    print(os.getcwd())

doc["submit"].bind('click', foo)

这只是一个例子--最初的代码要长得多。我使用的是最新的Brython版本(3.2.0)。当我在它们提供的控制台中的Brython页面上尝试它们时,os和函数的导入工作得很好,并且到目前为止,os是我唯一不能开始工作的导入。感谢您的帮助,感谢您的宝贵时间。

更新:它现在可以工作了,但我不知道为什么,我也不明白-如果有人能解释我做错了什么,那就太好了,以防将来我遇到类似的问题,我四处寻找os的替代方案(我想从一个目录中读取.txt文件-我知道如何使用os在普通的Python中做到这一点),并找到了一个使用glob的解决方案,我试图导入它。Brython似乎没有提供glob,所以我把glob.py放到了lib文件夹中--但我也看到glob导入了os,所以我想知道它能不能用,它确实能用。然后我再次尝试导入os,现在它可以工作了,但我不知道为什么。

代码语言:javascript
复制
from browser import document as doc, alert, html
from glob import glob
import os

# ... # 

def foo(ev):
    print(os.getcwd())

doc["submit"].bind("click", foo)

现在可以工作了。我不明白,为什么我先导入glob,再导入os,为什么它能正常工作?

EN

回答 1

Stack Overflow用户

发布于 2015-08-12 03:54:43

在您的代码示例中,没有定义doc

代码语言:javascript
复制
import os

def foo(ev):
    print(os.getcwd())

doc["submit"].bind('click', foo)

我可以import os没有任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31937190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档