![](/img/trans.png)
[英]I want to use a list from a class in another class, but i am not being able to achieve said goal
[英]I want to be able to load class from both root and sub path
我有个问题。
我的python项目路径如下:
code_root | - code_sub | |- b.py | -- c.py - a.py
从b.py导入了code_sub的c.py。
所以我希望能够同时从code_root和code_sub路径加载b.py。
例如:
code_root>$ python nlp.py
要么
code_root/code_sub>$ python b.py
这里的问题是调用c.py。
b.py不应这样导入c.py:
# b.py
import c
所以我找到了解决方案。
如下所示:
from os.path import dirname
curpath = dirname(__file__)
if len(curpath) == 0:
curpath = '.'
c = imp.load_source('c', curpath+'/c.py')
这可行,但似乎不是最佳解决方案。 我可以使用更标准的Python方法来完成同一件事吗?
我通常将项目设置如下,并使用完全限定的路径导入。 另外,我强烈建议您使用虚拟环境-然后可以使用命令“ add2virtualenv MyWorkinator,workinator”,这会使导入变得简单得多。
MyWorkinator (Project level folder)
|
- workinator (All code here)
|
- package_a
|
- a1.py
- a2.py
- package_b
|
- b1.py
- b2.py
c.py
在c.py中:
import workinator.package_b.b1
在b2.py中:
import workinator.package_a.a1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.