我尝试在没有.py文件扩展名的情况下导入ex:import something。这样做不会起作用。我还尝试通过创建 init .py将其转换为包,但它仍然不想导入。哦,顺便说一句,我使用的是Python 3.5。编辑:我正在使用pythonista,目前无法访问计算机和/或Xcode。
答案 0 :(得分:1)
在pythonista中,Documents文件夹默认不在sys.path中。 site-packages文件夹是您正在运行的当前脚本的路径。如果从控制台尝试import foo
,除非包含foo.py的路径在sys.path上,否则这将失败。
您有三个基本选项: 1)将您的“库”放入网站包(从模块和模板中找到,但实际上路径是〜/ Documents / site-packages)
2)在导入之前专门添加路径,例如在Documents / somefolder中有foo.py
sys.path.append(os.expanduser('~/Documents/somefolder'))
import foo
(尽管你应该首先检查路径是否在sys.path中,这样你就不会重复了)
3)使用impprtlib.find_module
答案 1 :(得分:0)
我不知道你可以在iOS上做到这一点,但我找到了另一个用户的修复程序。这段代码不是我的,但它是索林的。
import os, sys, inspect
# realpath() will make your script run, even if you symlink it :)
cmd_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile( inspect.currentframe() ))[0]))
if cmd_folder not in sys.path:
sys.path.insert(0, cmd_folder)
# use this if you want to include modules from a subfolder
cmd_subfolder = os.path.realpath(os.path.abspath(os.path.join(os.path.split(inspect.getfile( inspect.currentframe() ))[0],"subfolder")))
if cmd_subfolder not in sys.path:
sys.path.insert(0, cmd_subfolder)
# Info:
# cmd_folder = os.path.dirname(os.path.abspath(__file__)) # DO NOT USE __file__ !!!
# __file__ fails if script is called in different ways on Windows
# __file__ fails if someone does os.chdir() before
# sys.argv[0] also fails because it doesn't not always contains the path