如何正确地从Git子模块导入PyInstaller构建的应用程序?

2024-10-04 09:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我不是Python打包/构建专家,但我试图为我编写的应用程序生成一个可执行文件(目标是Windows可执行文件)。做了一些研究,发现PyInstaller对于我的一个小项目非常有用,因为它基本上包括一个外部“cli.py”脚本和一个“setup.py”,并在该目录下运行pyinstall来完成这个任务

结果是,现在我必须为一个更“复杂的结构化项目”做同样的事情。该项目使用git子模块指向另一个repo(Python模块),我不应该更改该文件夹代码。结构如下:

/my_app
|__ /moduleA (git_submodule)
|    |
|    |__/subModuleA1
|    |   |__ __init__.py
|    |   |__ <bunch of py scrips>
|    | 
|    |__ __init__.py
|    |__ scriptA.py
|
|__ /my_app_module
|    |
|    |__ __init__.py
|    |__ <couple of py scripts that imports moduleA stuff and should be made an executable app>
|
|__ cli.py (call a main from my_app_module)
|__ setup.py (point to a main from my_app_module)

我的问题:不确定这是否是PyCharm的问题(Pycharm imports from Git Submodule),但当我在PyCharm中作为项目打开此“My_app”文件夹时,需要我更新该git子模块的所有内部导入。例如:

  • scriptA.py从子模块A1导入一些内容,如:
    • from subModuleA1 import abc
  • 现在包含了子模块,我必须将其更新为
    • from moduleA.subModuleA1 import abc

我只是想导入一些“模块A”的东西,用于“我的应用程序模块”

问题是我必须更改另一个repo代码,这样PyCharm就不会抱怨我的导入,但我不应该更改子模块内部代码来使用它,对吗

我不确定这是不是PyCharm的东西,或者我缺乏Python模块/打包方面的知识,但是如果有人对如何以最佳方式组织这个项目提出建议,我会非常有帮助

提前感谢:)


Tags: 模块项目代码frompygitapp可执行文件
1条回答
网友
1楼 · 发布于 2024-10-04 09:27:36

在PyCharm中,您可以右键单击模块A,然后单击“将目录标记为”=>源根“

但我不确定在您创建可执行文件后,这是否会起作用。 这个问题有很多问题,我自己也在努力解决。 如果您在导入/my_app_模块之前将moduleA添加到该模块内的python路径中,可能会有所帮助:

import sys
sys.path.append("moduleA")
from subModuleA1 import abc

有关更多信息,请参见此问题

相关问题 更多 >