У меня проблема с большим набором скриптов, которые я поместил в пакет, и настроил тестовое репо package_test
, чтобы все заработало, как показано ниже. Я использую Python 3.7.4 в Windows 10 с VS Code в качестве моей IDE.
package_test/
-- package_test/
---- __init__.py
---- __main__.py
---- package_test.py
---- module_1.py
-- setup.py
Я получил работу для того, чтобы я мог запустить это как модуль, используя python -m package_test
изкорень этого каталога. Однако, если я пытаюсь запустить модуль package_test.py
напрямую (например, запустить VS Code или использовать отладчик), я получаю сообщение об ошибке.
Похоже, проблема связана с импортом. Почему я не могу запустить скрипт package_test.py
напрямую?
Вот соответствующие файлы:
__ init __. Py
from .module1 import *
__ main __. Py
import package_test.package_test
def main():
package_test.package_test.main()
if __name__ == '__main__':
main()
package_test.py
import package_test
from package_test.module1 import *
def main():
package_test.module1.main()
if __name__ == '__main__':
main()
module1.py
import package_test
from .module1 import *
def textfx():
print('Hello textfx!!')
def main():
package_test.module1.textfx()
if __name__ == '__main__':
main()
Ошибка при прямом запуске:
USER@PC MINGW64 /c/Code/python/package_test (master)
$ C:/apps/Python37/python.exe c:/Code/python/package_test/package_test/package_test.py
Traceback (most recent call last):
File "c:/Code/python/package_test/package_test/package_test.py", line 1, in <module>
import package_test
File "c:\Code\python\package_test\package_test\package_test.py", line 2, in <module>
from package_test.module1 import *
ModuleNotFoundError: No module named 'package_test.module1'; 'package_test' is not a package
Но, когда я запускаю это как модуль, результат:
USER@PC MINGW64 /c/Code/python/package_test (master)
$ py -m package_test
Hello textfx!!