我在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
然后更新导入?
但我怀疑我该如何部署?我是否还必须设置相同的文件夹结构?
答案 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附带的Pydev。 Create source a folder from the IDE并将您之前的项目与新项目相关联。当您链接项目时,IDE会将旧项目的源文件夹添加到新项目的. To locate the
中,因此Python将能够找到您的模块。