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

在Github操作下构建作业时,如何安装本地python包?

屈健柏
2023-03-14

我正在构建一个python项目--药剂。我想使用Github操作来自动化一些linting

为此,我使用了Github推荐的python actions starter工作流——python应用程序的一个轻微修改。

在作业中的“安装依赖项”步骤中,我遇到了一个错误。这是因为pip试图安装我的本地软件包potion,但失败了。

如果[-f requirements.txt],if失败的代码;然后是pip安装-r要求。txt;fi

相应的错误是:

ERROR: git+https@github.com:<github_username>/potion.git@82210990ac6190306ab1183d5e5b9962545f7714#egg=potion is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with bzr+http, bzr+https, bzr+ssh, bzr+sftp, bzr+ftp, bzr+lp, bzr+file, git+http, git+https, git+ssh, git+git, git+file, hg+file, hg+http, hg+https, hg+ssh, hg+static-http, svn+ssh, svn+http, svn+https, svn+svn, svn+file).
Error: Process completed with exit code 1.

很可能,该作业无法安装包potion,因为它无法找到它。我使用pip install-e在自己的计算机上安装了它。和后来使用的pip冻结

由于我使用这个软件包进行测试,因此我需要安装这个软件包,以便pytest能够正确运行其测试。

如何在Github Actions上安装本地软件包(正在开发中)?

这里是Github工作流文件python-app.yml的一部分

...
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install flake8 pytest
        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
    - name: Lint with flake8
...

注1:我已经尝试过从git进行更改git@github.com:

注2:我还尝试过使用其他协议,比如git-httpsgit-ssh,等等。

注3:我还试图删除字母数字@8221 在git url之后。。。饮剂git


共有1个答案

寿意远
2023-03-14

在您的情况下,“测试中的包装”即药剂不应属于要求的一部分。txt。相反,只需添加一行即可

pip install -e .

符合pip安装-r要求的行之后。txt。它在开发模式下安装已签出的包,并使其在本地可用于导入

或者,您可以将该行放在最新需要的位置,即在运行pytest之前。

 类似资料:
  • 我的用例是,我希望每个构建/运行的工件都有一个唯一的版本号。对于CircleCI、Travis等当前工具,有一个可用的构建编号,它基本上是一个不断上升的计数器。因此,我可以创建版本字符串,如0.1.0-27。即使对于相同的提交,此计数器也会每次增加。 如何使用GitHub Actions做类似的事情?Github操作只提供GITHUB_SHA和GITHUB_REF。

  • 根据这些说明,我将Maven包部署到github。https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages#installing-a-package 这起作用了。 现在,我正在安装第二个Maven项目,它

  • 当我通过命令行运行Beam管道时,使用direct runner或dataflow runner,它工作得很好。。。 例子: 但是当我尝试使用空气流时,我有两个选项,bash操作符或python操作符。 使用bash操作符会成功,但会限制我使用气流功能的能力。 但是我想做的是作为python操作员运行它。所以我将模块导入到airflow dg文件中,然后作为python操作符运行它。 如果我使用本

  • 我试图通过运行在github工作流ci中安装npm依赖项。但是,我得到以下错误: ci.yml 包裹json npm正在通过github安装此

  • 我有下面的GitHub操作配置文件(为了简单起见删除了部分)。 我遇到的主要问题是节点测试。js版本8失败。但其他人都成功了。在这种情况下,如果一个作业失败,GitHub操作往往会取消所有作业。 有没有办法改变这种行为,以便即使一个作业失败,所有作业也能继续运行?这有助于查明特定版本的问题。

  • 我有一个包,我想构建到一个docker映像,这取决于我系统上的一个相邻包。 我的如下所示: 当我在virtualenv中调用时,这很好。但是,如果我在Dockerfile中调用它,例如: