Dropbox API在Python脚本模式报错,交互模式正常,求原因及解决办法
脚本模式与交互模式Dropbox API运行差异的原因与解决方案
这个问题的核心是文件名冲突导致的循环导入错误,我来给你拆解清楚:
为什么会有差异?
你把测试脚本命名成了dropbox.py,当Python在脚本里执行import dropbox时,它会按照模块搜索顺序优先加载当前目录下的dropbox.py(也就是你的脚本本身),而不是你通过pip安装的第三方dropbox库。这种情况下相当于脚本试图导入自己,必然会触发导入错误。
而在交互模式下,Python不会自动把当前目录下的dropbox.py当作模块加载(除非你手动导入),所以它会正常找到系统中安装的官方dropbox库,因此代码能顺利运行。
如何让脚本模式正常工作?
只需要两步就能解决:
- 重命名你的脚本文件:把
dropbox.py改成别的名字,比如dropbox_api_test.py,彻底避免和库名冲突。 - 清理编译缓存文件:如果当前目录下生成了
dropbox.pyc(Python的字节码缓存文件),一定要把它删掉,不然缓存可能会导致问题残留。
修改完成后,重新执行脚本:
python3 dropbox_api_test.py
这时候Python就能正确导入官方的dropbox库,你的代码也就可以正常运行了。
你还可以在脚本里加一行代码验证:
import dropbox print(dropbox.__file__) # 输出官方库的路径,确认导入正确 dbx = dropbox.Dropbox('MY_TOKEN') dbx.users_get_current_account()
运行后如果输出的是系统中dropbox库的安装路径,就说明问题已经解决啦。
内容的提问来源于stack exchange,提问作者Deux132
相关产品推荐
相关产品推荐

