我有以下文件夹结构.
application/app/folder/file.py
我想从另一个驻留的Python文件中的file.py中导入一些函数
application/app2/some_folder/some_file.py
我试过了
from application.app.folder.file import func_name
和其他一些尝试,但到目前为止我无法正确导入.我怎样才能做到这一点?
我有一个名为的文件tester.py
,位于/project
.
/project
有一个名为的子目录lib
,其文件名为BoxTime.py
:
/project/tester.py
/project/lib/BoxTime.py
Run Code Online (Sandbox Code Playgroud)
我想导入BoxTime
的tester
.我试过这个:
import lib.BoxTime
Run Code Online (Sandbox Code Playgroud)
结果如下:
Traceback (most recent call last):
File "./tester.py", line 3, in <module>
import lib.BoxTime
ImportError: No module named lib.BoxTime
Run Code Online (Sandbox Code Playgroud)
任何想法如何BoxTime
从子目录导入?
编辑
该__init__.py
是问题,但不要忘了提及BoxTime
作为lib.BoxTime
,或使用:
import lib.BoxTime as BT
...
BT.bt_function()
Run Code Online (Sandbox Code Playgroud) 我一直想知道是否有办法在Python循环中使用迭代器作为变量名.例如,如果我想创建对象v0
,v1
,v2
,是有没有办法做这样的事情:
for i in range(3):
v + str(i) = i**2
Run Code Online (Sandbox Code Playgroud)
我知道语法错误,但这个想法应该清楚.相当于paste
R的东西?非常感谢,
为了添加到我的程序(在python 2.7中)检查可用模块,我添加了以下代码来代替经典导入(这个想法是为了帮助某人找到并添加额外的模块):
mymodules = ['socket', 'requests', 'simplejson', 'pickle', 'IPy',
'pygeoip', 'urllib', 'time', 'urllib2', 'StringIO', 'gzip', 'os']
import sys, importlib # these ones should be available, otherwise bad luck :)
for module in mymodules:
try:
importlib.import_module(module)
print "importing ", module
except:
if module == "requests": info = "http://docs.python-requests.org/en/latest/user/install/#install or aptitude install python-requests"
elif module == "requests": info = "https://github.com/simplejson/simplejson or aptitude install python-simplejson"
elif module == "IPy": info = "https://github.com/haypo/python-ipy/wiki or aptitude install python-ipy"
elif module == "pygeoip": info = "https://github.com/appliedsec/pygeoip …
Run Code Online (Sandbox Code Playgroud)