Ama*_*aar 5 python-import git-submodules pycharm
我在 Pycharm 中有一个 python 项目,其中有一个嵌套的 Git 子模块。这是文件夹结构:
my-git-repo
git-submodule-repo
package1
foo.py
bar.py
package2
baz.py
.gitmodules
Run Code Online (Sandbox Code Playgroud)
导入git-submodule-repo的结构如下:
foo.py:
from package1.bar import some_func
Run Code Online (Sandbox Code Playgroud)
但是,Pycharm 不承认这一点,并希望我改为拥有以下内容:
foo.py:
from git-submodule-repo.package1.bar import some_func
Run Code Online (Sandbox Code Playgroud)
这是有问题的,因为我不想更改所有导入git-submodule-repo(这似乎不是一个好的做法,而且不可扩展)并且其中git-submodule-repo有破折号,这对于导入来说不是有效的 Python 语法(我可以) t 重命名回购)。
我还需要一种从git-submodule-repo代码中导入的方法。像这样的东西:
baz.py:
from git-submodule-repo.package1.bar import some_func
Run Code Online (Sandbox Code Playgroud)
但当然没有破折号使其语法无效。这是内容.gitmodules以防万一它有用:
[submodule "git-submodule-repo"]
path = git-submodule-repo
url = https://github.com/SomeAccount/git-submodule-repo.git
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
小智 2
Soultion 1通过将子模块
文件夹标记为.
这种方法的缺点是它不允许您在没有 PyCharm 的情况下运行代码(例如从远程服务器上的终端),除非您使用PyCharm 远程解释器选项(仅适用于 PyCharm Professional)。Preferences -> Project -> Project Structure
解决方案 2
查看@Kevin 提出的关于从 git 子模块导入 python 文件的一般解决方案。您可以根据对项目根目录的兴趣创建到库的软链接。在您的情况下,命令将是:
$ ln -s git-submodule-repo.package1 package1
然后您将能够使用from package1.bar import some_funcfrom导入它foo.py。
这种方法的缺点是它不是跨平台的,例如,如果您需要它,您将无法从 Windows 运行它。
| 归档时间: |
|
| 查看次数: |
1631 次 |
| 最近记录: |