如何在同一文件夹中的脚本之间使用Python导入、作为包的一部分导入以及作为文件夹中的独立脚本运行

如何在同一文件夹中的脚本之间使用Python导入、作为包的一部分导入以及作为文件夹中的独立脚本运行,python,python-3.x,module,python-import,Python,Python 3.x,Module,Python Import,很长一段时间以来,我一直在阅读绝对进口与相对进口的比较,但没有任何东西对我有所帮助 假设我有一个python模块,其结构如下: └── test_project ├── __init__.py ├── script1.py ├── script2.py └── main.py \uuuu init\uuuu.py为空 script1.py具有函数 script2.py访问script1。这可以通过来自的实现。导入脚本1,导入.script1(相对)或导入脚本1

很长一段时间以来,我一直在阅读绝对进口与相对进口的比较,但没有任何东西对我有所帮助

假设我有一个python模块,其结构如下:

└── test_project
    ├── __init__.py
    ├── script1.py
    ├── script2.py
    └── main.py
  • \uuuu init\uuuu.py
    为空
  • script1.py
    具有函数
  • script2.py
    访问script1。这可以通过来自的
    实现。导入脚本1
    导入.script1
    (相对)或
    导入脚本1
    (绝对)
  • main.py
    是一个在命令行上从script1运行函数的脚本,因此包含
    if'\uuuu name\uuuuu'==\uuuuu main\uuuu:
    ,后跟某个版本的
    import script1
我希望能够将script2导入文件夹内外的python终端,并在命令行上从文件夹内外运行main.py脚本,即
python test\u project/main.py

尽管做了很多尝试,我还是找不到任何方法来编写导入命令,
import script2
在所有这些情况下都能工作

例如,如果我使用来自的
。在main和script2中导入script1
,然后从test_项目中运行
,在python中从文件夹外部导入script2
,这样就可以正常工作。但是如果我运行
python test\u project/main.py
或尝试在文件夹中导入python,我会得到:

Traceback (most recent call last):
File "test_project/main.py", line 1, in <module>
    from . import script1
ImportError: attempted relative import with no known parent package
因此,是否不可能以能够实现这些功能的方式编写导入语句

<ipython-input-1-c3cdbe7a7496> in <module>
----> 1 from test_project import script2
~/python/test_project/script2.py in <module>
----> 1 import script1
ModuleNotFoundError: No module named 'script1'