[英]how to import a python file which is further importing other files. without getting ImportError?
[英]Python: Importing own files. Why does “import myFile” not work?
为了构建我的python项目,我想到了将代码分成不同的文件。
我在此处找到了有关导入的大量指南,示例1似乎很适合我的需求。
因此,我使用以下代码创建文件part.py
:
print("Hello world")
def myFunction():
print("This is my function!")
然后我在同一文件夹中创建了destination.py
:
import part
# from part import *
myFunction()
正如我期望的那样, import part
将运行part.py的整个代码,我的最终结果是
Hello world
This is my function!
但是,我得到了
ModuleNotFoundError Traceback (most recent call last)
in ()
----> 1 import part
2 # from part import *
3
4 myFunction()
ModuleNotFoundError: No module named 'part'
使用# from part import *
代替import part
会导致相同的错误。
我究竟做错了什么?
编辑:@hiro主角:我将一个空的__init__.py
文件放入同一词典中。 重新启动内核后,运行destination.py中的所有代码时,我会(注意hello world
):
Hello world
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in ()
2 # from part import *
3
----> 4 myFunction()
NameError: name 'myFunction' is not defined
再次运行destination.py中的所有代码后,我只得到
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in ()
2 # from part import *
3
----> 4 myFunction()
NameError: name 'myFunction' is not defined
如果现在执行第三part.py
,请运行part.py
所有代码,我得到
Hello world
然后,我可以运行destination.py
所有代码来获取
This is my function!
如果我只能以相同的结果一次又一次地运行destination.py
,我会更喜欢。
@Nullman: part.py
是文件,但是import .part
抛出
File "", line 1
import .part
^
SyntaxError: invalid syntax
@Jeyekomon:我正在Windows 10和Python 3.7.0上使用Visual Studio Code。
@ 9769953:我直接在Visual Studio Code中运行代码
该模块导入问题似乎现在已解决。 尽管在Python 3中通常不再需要 __init__.py
文件,但是您正在使用的Visual Studio Code似乎仍然需要它。
其余的问题与使用模块有关。 从官方Python教程中学习创建和使用模块的基础知识。 模块part
应包含可在主文件destination
调用的函数:
destination.py :
import part
part.say_hello()
part.myFunction()
part.say_hello()
part.py :
def say_hello():
print("Hello world")
def myFunction():
print("This is my function!")
将您的destination.py更改为:
from part import *
myFunction()
这对我行得通
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.