Anaconda:永久导入自己的模块,而不是它们的 "directory-wise siblings"
Anaconda: Permanently import own module, but not their "directory-wise siblings"
我在“GitHub”文件夹中有多个 Python 项目(也是 Git 存储库),如下所示:
GitHub/
├── Project_1/
│ ├── main.py
│ └── ...
└── Project_2/
├── main.py
└── ...
现在我想要的是 import Project_1
在 Project_2 的 .py 文件中(例如 main.py)。
我当然在网上搜索,发现了这些相关问题:
然而,他们都描述了我将如何设法达到 import GitHub
,这不是我想要的,因为那时我得到了一个奇怪的自我导入 Project_2。
有什么方法可以实现我想要的,同时仍然可以“即时”修改所有代码(无需每次都重新安装)?
顺便说一句,我正在使用 PyCharm - 以防有内部解决方法。
也请告诉我,如果我做的任何事情是不好的做法,为什么 - 这样我就可以从中学习。
提前致谢!
如果项目packages are properly, well, packaged,即你可以一般pip install
他们,那么你也可以使用pip install -e
(-e
为--editable
) pip
只是 link 它们到您当前的环境而不是复制文件。
这样包在它们的目录中保持可编辑,并且可以像任何其他包一样使用。
例子
一个易于操作的项目树示例可能如下所示。
- my_projects/ (née GitHub)
- project1/
- setup.py (or pyproject.toml)
- package1/
- __init__.py
- mod1.py
- mod2.py
- project2/
- setup.py (or pyproject.toml)
- package2/
- __init__.py
- mod3.py
- mod4.py
- project3/
- secretproject/
- __init__.py
- __main__.py # to allow running `python -m secretproject`
- mod5.py
这假设 project1
和 project2
是包含您要在 project3
中使用的包的项目,它们不一定需要可重复使用。
如果 project1
和 project2
已正确配置包安装(请参阅上面的 link),那么您可以在 project3
的 virtualenv 中执行pip install -e ~/my_projects/project1 -e ~/my_projects/project2
和 package1
和 package2
可供 secretproject
使用。
我在“GitHub”文件夹中有多个 Python 项目(也是 Git 存储库),如下所示:
GitHub/
├── Project_1/
│ ├── main.py
│ └── ...
└── Project_2/
├── main.py
└── ...
现在我想要的是 import Project_1
在 Project_2 的 .py 文件中(例如 main.py)。
我当然在网上搜索,发现了这些相关问题:
然而,他们都描述了我将如何设法达到 import GitHub
,这不是我想要的,因为那时我得到了一个奇怪的自我导入 Project_2。
有什么方法可以实现我想要的,同时仍然可以“即时”修改所有代码(无需每次都重新安装)?
顺便说一句,我正在使用 PyCharm - 以防有内部解决方法。
也请告诉我,如果我做的任何事情是不好的做法,为什么 - 这样我就可以从中学习。
提前致谢!
如果项目packages are properly, well, packaged,即你可以一般pip install
他们,那么你也可以使用pip install -e
(-e
为--editable
) pip
只是 link 它们到您当前的环境而不是复制文件。
这样包在它们的目录中保持可编辑,并且可以像任何其他包一样使用。
例子
一个易于操作的项目树示例可能如下所示。
- my_projects/ (née GitHub)
- project1/
- setup.py (or pyproject.toml)
- package1/
- __init__.py
- mod1.py
- mod2.py
- project2/
- setup.py (or pyproject.toml)
- package2/
- __init__.py
- mod3.py
- mod4.py
- project3/
- secretproject/
- __init__.py
- __main__.py # to allow running `python -m secretproject`
- mod5.py
这假设 project1
和 project2
是包含您要在 project3
中使用的包的项目,它们不一定需要可重复使用。
如果 project1
和 project2
已正确配置包安装(请参阅上面的 link),那么您可以在 project3
的 virtualenv 中执行pip install -e ~/my_projects/project1 -e ~/my_projects/project2
和 package1
和 package2
可供 secretproject
使用。