Python:共享2个模块之间的模型代码

时间:2017-05-19 08:01:39

标签: python model

我在Python中攀登我的学习曲线,并尝试了解放置所有内容的位置。

我最初在一个文件夹中有一个python模块,然后是一个子文件夹src,在这个src文件夹中我将把我的主要源文件说为main.py然后我将有模型文件夹存储我的模型代码。

/myproject/src/main.py
/myproject/src/models/a-model.py
/myproject/src/models/b-model.py

所以我的主要人员将导入这样的模型:

from models.a-model import a

然后当我打包zip文件时,我只需将myproject文件夹压缩到该文件夹​​结构并部署,一切都很好。

现在我有另一个新模块做了不同的事情,但需要使用相同的模型。

我可以轻松地将它们全部复制并分别编码和部署。但我想将这些代码分享给模型,这样当一个模型发生变化时,我只需要更新一次,而不是2个位置。

我的新模块就像

/mynew/src/main-b.py
/mynew/src/models/a-model.py
/mynew/src/models/b-model.py

这样做的最佳做法是什么?

我这样说吗?

/myproject/src/main.py
/mynew/src/main-b.py
/models/a-model.py
/models/b-model.py

然后更新导入?

但我怀疑我该如何部署?我是否还必须设置相同的文件夹结构?

1 个答案:

答案 0 :(得分:1)

一个是将<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> <title>Softworks Self Service</title> <link href="css/style.css" rel="stylesheet"> <link href="css/bday.css" rel="stylesheet"> <link href="css/xmas.css" rel="stylesheet"> <link href="css/ionic.app.css" rel="stylesheet"> <link href="lib/ionic-content-banner/dist/ionic.content.banner.css" rel="stylesheet"> <link href="lib/ion-floating-menu/dist/ion-floating-menu.min.css" rel="stylesheet" type="text/css" /> <!-- ionic/angularjs js --> <script src="lib/ionic/js/ionic.bundle.min.js"></script> <script src="lib/ionic-platform-web-client/dist/ionic.io.bundle.min.js"></script> <script src="lib/ngCordova/dist/ng-cordova.min.js"></script> <!-- Needed for Cordova/PhoneGap (will be a 404 during development) --> <script src="cordova.js"></script> <!-- your app's js --> <script src="js/app.js"></script> <script src="js/services.js"></script> <script src="js/controllers.js"></script> </head> 添加到环境变量/myproject/src/models。 Python将PYTHONPATH环境变量中列出的目录添加到PYTHONPATH,这是Python尝试导入内容时搜索的目录列表。这是,因为修改sys.path有其自身的副作用,幸运的是,虚拟环境提供了一种解决这些副作用的方法。

或者更好的是你可以将模块添加到PYTHONPATH目录,site-packages被添加到sys.path site-packages PYTHONPATH by default, this obviates the need to modify site-packages`目录中,参考来自Python文档的这个页面:Installing Python Modules (Legacy version)

您还可以使用已安装LiClipse IDE附带的PydevCreate source a folder from the IDE并将您之前的项目与新项目相关联。当您链接项目时,IDE会将旧项目的源文件夹添加到新项目的. To locate the中,因此Python将能够找到您的模块。