我试图对现有的python模块进行更改,然后在本地测试它。最好的方法是什么?
我克隆了github模块并做了修改,但是我不确定如何导入本地包而不是已经安装的包。
您可能应该在虚拟环境中完成大部分开发工作。您的工作流程可能如下所示:
# activate the virtual environment in ~/vpy
. $HOME/vpy/bin/activate
# install my app and its dependencies
cd $HOME/src/myapp
pip install -e .
# use my forked library instead
cd $HOME/src/forkedlib
pip install -e .
pytest # or whatever tests the forked lib has
# try it out with my application too
cd $HOME/src/myapp
pytest # or whatever tests your app has
myapp
pip安装-e
做了一些神奇的事情,所以每当你导入库中的模块时,它会直接路由到签出的源代码树,所以如果你在forkedlib
中进行编辑,然后重新运行myapp
,您将直接看到这些更改。
完成后,您可以pip卸载forkedlib
,然后重新运行pip安装-e.
以重新安装应用程序的(声明的)依赖项。(如果更容易的话,也可以删除并重新创建虚拟环境。)
你可以:
我推荐阅读这篇文章,它很好地解释了模块和包。
您需要创建一个模块或一个包(这没什么区别),使用与您想要的模块/包相同的名称,并将其放在与要使用它的脚本相同的文件夹中。
这是因为从sys.path
变量开始搜索模块(其中第一个元素是脚本的目录)
import platform
print(platform.system())
启动它(python您的测试脚本.py
)应该返回:
现在,在前面的测试脚本的同一目录中创建一个名为platform.py
的文件,其内容如下:
def system():
"""Just a docstring passing by"""
return "We have just overwritten default 'platform' module...\nFeel the force!"
如果现在启动脚本,您会注意到输出不同:
如果您的项目更复杂,则是更好的选择。
从包的根目录(启动构建的地方):
pip install -e ./
现在,您可以编辑代码并实时查看更改。
从包装的乐趣中:
它将一个链接(实际上是*.pth文件)放入python安装中,以便安装您的包,但任何更改都将立即生效。
这样,您的所有测试代码、客户机代码等都可以以通常的方式导入您的包。
没有系统路径黑客
进行这种测试最简单的方法是创建一个虚拟环境,然后在开发模式下安装包。
假设您在Linux上,它看起来是这样的。
$ virtualenv dev_env
$ source dev_env/bin/activate
$ cd ~/project_folder
$ pip install -e .
此工作流不会覆盖系统上已安装的软件包。另一种可能更简单的选择是只使用一个IDE来为您处理大部分这方面的问题,例如PyCharm。
问题内容: 可以说我正在开发MyApp应用程序,我想为其构建MyModule NPM模块。现在,我可以想到两种开发方法: 进行更改->保存-> npm在MyApp中安装/ path / to / module 与1相同,除了运行npm install / path / to / module,然后直接在node_modules中对其进行编辑,然后复制所做的更改。 我想要一个更简单的工作流程。我可以
本文向大家介绍使用Eclipse如何开发python脚本,包括了使用Eclipse如何开发python脚本的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了Eclipse开发python脚本的具体方法,供大家参考,具体内容如下 一、安装python 1.访问网址,可以看到如下图所示界面 2.点击上图的"Download",可以看到如下图所示的界面: 3.下载python-2.7.14.am
我已经为本地Python应用程序配置了 在它的文件。使用启动本地开发服务器时 一切都很好。 因为GAE的本地开发服务器使用Python2。7默认情况下,我现在想使用Python3。而是x。根据谷歌的文档,我们必须使用灵活的环境。因此,我正在更改至: 现在吐出: 谷歌的Hello World应用程序也可以重现这个问题,该应用程序使用灵活的环境。 所以我们不能在本地使用Python3?在上传Pytho
问题内容: Kubernetes似乎只不过是将容器部署到集群云中。似乎没有碰到的是开发和暂存环境(或类似环境)。 在开发过程中,您希望通过一些重要更改尽可能接近生产环境: 本地部署(或至少在 您只有您可以访问的地方 ) 在页面刷新时使用 最新的源代码 (假设它是一个网站;理想情况下,在本地文件保存上页面自动刷新,如果您挂载源代码并使用诸如Yeoman之类的东西就可以完成)。 同样,人们可能希望非公
Egg.js应用开发-本地开发 平台流程 本地开发 Egg.js应用开发-本地开发 更新时间:2018-08-09 18:40:14 本章讲解:Egg.js 应用如何开发, 待补充.. 平台流程 进入应用开发界面,可以在页面上看到应用的 AppKey、AppSecret 以及代码仓库信息。 本地开发 克隆代码 git clone git@code.aliyun.com:iot-a124labfag
Web 插件开发-本地开发 安装开发环境 本地开发 开发资源 Web 插件开发-本地开发 更新时间:2018-07-04 18:46:18 本章介绍插件的本地开发步骤。 安装开发环境 请参照 Bone Web 文档安装开发环境:https://bone.aliyun.com/bone-web/bonewebsdk.html?name=zm1rpl 本地开发 创建项目: bone init 1.选