1.场景(when):
当我们基于一个已存在的项目(以下称为项目B)开发新项目(以下称为项目A)的时候,需要将已存在的项目加入到新项目的依赖中。
2.如何做(how):
如果你用PyCharm开发python,那么会非常简单,你只需要把B项目加入到项目A的Content Root中,就可以了
操作顺序:File->Settings->Project->Projiect Structure
假如没有使用PyCharm,可以把项目B加入到运行环境中(这个方法自行百度)
另外一种方法着重讲一下,两个项目结构如图:
假如bussiness-platform-demo(项目A)想要依赖bussiness_platform(项目B)应该怎么做呢?
思路如下:
- 项目A中建一个package(如图中的proxy_package),在__init__.py中使用sys.path.append()把项目B追加进来
- 在__init__.py中把项目B中的包都导入进来
- 在其他引用的地方只需要使用from proxy_package便可以导入所需的module
下面是具体步骤(step):
1.在项目A中建立代理包proxy_package,只需保留__init__.py文件
__init__.py文件中追加项目B
# 运行时路径。并非__init__.py的路径
BASE_DIR = "..\\business_platform"
if Path(BASE_DIR).exists():
sys.path.append(BASE_DIR)
else:
# 尝试下探一级路径
sys.path.append("..\\..\\business_platform")
2.导入B中其他包
# 导入项目的文件,请忽略静态错误
# **************************************************common
from common import *
# **************************************************configuration
from configuration import *
# **************************************************service
from service import *
# **************************************************business_platform
from dynamic_config import *
3.项目A中使用
只需要from proxy_package就可以导入上述包中的所有module
# eg:导入common中module
from proxy_package import redis_utils, UrlPathEnum, thread_utils