【发布时间】:2020-07-31 22:42:59
【问题描述】:
我有一个旧项目 (OldProject) 存储在我桌面上的某个位置,我已经启动了一个新项目 (NewProject),它使用来自 OldProject 的文件。
这两个项目位于两个完全不同的目录中,OldProject 可以在没有NewProject 的情况下完全独立存在(这意味着我无法将其重构为NewProject,因为它会移动目录,我会这样做 不想要)
现在在NewProject 中使用来自OldProject 的脚本:
- 在 PyCharm 中打开
NewProject - 打开
OldProject,然后单击附加将其附加到NewProject - 进入项目设置并将
OldProject标记为源根并使其成为NewProject的依赖项 - 在同一个菜单中,我将其添加为内容根目录,以便它现在位于我的项目视图中
然后我继续开发。
现在,我想在 GitHub 上分享 NewProject,但(令我惊讶的是)最初的提交没有包含来自 OldProject 的任何文件,这意味着它对其他人毫无用处。
有没有办法可以将OldProject 显式添加到NewProject 不必复制所有文件并更新导入语句(在两个项目中)?
当在NewProject 中使用来自OldProject 的脚本时,导入语句类似于:
import old_project_folder
相对于:
import OldProject.old_project_folder
即在 IDE 中,OldProject 和 NewProject显示位于同一位置。
但是,我无法在 PyCharm 以外的任何地方运行 NewProject 中的程序,因为导入语句不正确。
我也尝试过以编程方式将目录插入到驱动程序脚本中:
if __name__ == '__main__':
import sys
sys.path.insert(1, path_to_old_project)
run()
但这并没有奏效。
我尝试将__init__.py 添加到OldProject 以使其成为一个模块,但我有几个目录和子目录,所以我想知道在进一步使用它之前是否有办法实现相同的结果。
【问题讨论】: