当前位置: 首页 > 知识库问答 >
问题:

如何在本地开发python包?

蓟雪峰
2023-03-14

我试图对现有的python模块进行更改,然后在本地测试它。最好的方法是什么?

我克隆了github模块并做了修改,但是我不确定如何导入本地包而不是已经安装的包。

共有3个答案

张逸清
2023-03-14

您可能应该在虚拟环境中完成大部分开发工作。您的工作流程可能如下所示:

# 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.以重新安装应用程序的(声明的)依赖项。(如果更容易的话,也可以删除并重新创建虚拟环境。)

吴兴国
2023-03-14

你可以:

  • 通过在与要运行的脚本相同的文件夹中创建另一个具有相同名称的模块/包来覆盖模块/包。

我推荐阅读这篇文章,它很好地解释了模块和包。

您需要创建一个模块或一个包(这没什么区别),使用与您想要的模块/包相同的名称,并将其放在与要使用它的脚本相同的文件夹中。

这是因为从sys.path变量开始搜索模块(其中第一个元素是脚本的目录)

  1. 创建包含以下内容的脚本:
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安装中,以便安装您的包,但任何更改都将立即生效。

这样,您的所有测试代码、客户机代码等都可以以通常的方式导入您的包。

没有系统路径黑客

王昆
2023-03-14

进行这种测试最简单的方法是创建一个虚拟环境,然后在开发模式下安装包。

假设您在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.选