我最近发现了一个以Python为代码库的新项目.我之前从未做过Python – 来自C/C++编译代码的世界.我遇到了一些了解我当前代码库的问题.
当我们编写代码时,我们的库(比其他代码更通用的组件)和我们的应用程序代码(应用程序库的代码),对吧?在我以前参与过的项目中,我会将我的库代码和应用程序保存在一个项目文件夹中的包含文件夹中.在C/C++土地上,会有一个makefile(或一些make系统)将所有东西挂钩在一起,以便适当地包含所有工作.
Project/
Library/
Utilities.cpp
Application/
Main.cpp
makefile
我现在进入的项目在site-packages文件夹中有自己的库,该文件夹本身位于IronPython / Python系统文件夹中.该库代码是我们的,并且仍然是“热门”并正在进行中.应用程序代码在系统的其他位置.
这似乎是糟糕的设计,但我的同行们坚持认为这只是“Python的工作方式”. Python支持包含/导入.难道一切都不应该是自给自足的吗?像这样分散代码似乎很奇怪.
谢谢!
解决方法:
Python库通常通过distutils或setuptools安装.这些实用程序将库安装在python的site-packages文件夹中,这是python知道在遇到import x语句时查找lib的地方.
直接在site-packages文件夹中开发代码似乎有点奇怪,尽管技术上没有任何问题.通常,你会有这样的事情:
./app1.py
./lib1/__init__.py
./lib1/lib1.py
./lib2/__init__.py
./lib2/lib2.py
...etc
然后,当您准备好打包库时,可以使用上面提到的一个util来执行此操作(然后将lib安装到site-packages中).
所以,回答你的问题:没有硬性规定.我认为大多数python开发人员都不愿意直接在站点包中进行开发.
* Setuptools还有一个名为develop的命令,用于在site-packages中安装指向开发库的链接.我已经使用了几次并取得了良好的效果.
标签:python,import,ironpython 来源: https://codeday.me/bug/20190530/1185821.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。