对不起,这已经得到了肯定的回答,但我找不到我的问题的答案。。。我想让两个单独的脚本可以调用。让我用一个例子详细解释一下。你知道吗
我的目录结构类似于:
maindir
|- subdir
| |- script.py
| `- myfunc.py
`- main.py
包括以下内容:
在myfunc.py
中有
def myverynicefunc():
print('Hello, I am your very nice func :)')
在script.py
中有
import myfunc
def scriptfunc():
print('I am the script function :)')
myfunc.myverynicefunc()
在main.py
中有
from subdir.script import scriptfunc
scriptfunc()
如果我转到subdir
目录并执行它工作的脚本,我的意思是:
.../main_dir/subdir$ python3 script.py
Hello, I am your very nice func :)
但是,如果我尝试执行main.py
脚本,它将失败:
.../main_dir$ python3 main.py
Traceback (most recent call last):
File "main.py", line 1, in <module>
from subdir.script import scriptfunc
File "/home/alf/Escritorio/main_dir/subdir/script.py", line 1, in <module>
import myfunc
ModuleNotFoundError: No module named 'myfunc'
如果我将script.py
的内容修改为
from . import myfunc
def scriptfunc():
print('I am the script function :)')
myfunc.myverynicefunc()
现在情况正好相反,main.py
脚本工作正常:
.../main_dir$ python3 main.py
Hello, I am your very nice func :)
I am the script function :)
但是script.py
脚本失败:
.../main_dir/subdir$ python3 script.py
Traceback (most recent call last):
File "script.py", line 1, in <module>
from . import myfunc
ImportError: cannot import name 'myfunc'
有没有办法同时调用main.py
和script.py
来工作?你知道吗
在第二种情况下,您可以 python3-c“导入细分脚本“在主目录中
在你的
script.py
里试试这个-这样,如果python的当前目录是文件的父目录,即
maindir
,它将更改目录的路径,然后导入它。你知道吗这样,它应该可以在两种情况下工作。希望这有帮助。:)
相关问题 更多 >
编程相关推荐