<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # GitLab PyPi Repository > 原文:[https://docs.gitlab.com/ee/user/packages/pypi_repository/](https://docs.gitlab.com/ee/user/packages/pypi_repository/) * [Setting up your development environment](#setting-up-your-development-environment) * [Enabling the PyPi Repository](#enabling-the-pypi-repository) * [Getting started](#getting-started) * [Create a project](#create-a-project) * [Create a package](#create-a-package) * [Adding the GitLab PyPi Repository as a source](#adding-the-gitlab-pypi-repository-as-a-source) * [Authenticating with a personal access token](#authenticating-with-a-personal-access-token) * [Authenticating with a deploy token](#authenticating-with-a-deploy-token) * [Uploading packages](#uploading-packages) * [Upload packages with Twine](#upload-packages-with-twine) * [Install packages](#install-packages) # GitLab PyPi Repository[](#gitlab-pypi-repository-premium "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/208747) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.10. 使用 GitLab PyPi 信息庫,每個項目都可以有自己的空間來存儲 PyPi 軟件包. GitLab PyPi 存儲庫可用于: * [pip](https://s0pypi0org.icopy.site/project/pip/) * [twine](https://s0pypi0org.icopy.site/project/twine/) ## Setting up your development environment[](#setting-up-your-development-environment "Permalink") 您將需要最新版本的[pip](https://s0pypi0org.icopy.site/project/pip/)和[twine](https://s0pypi0org.icopy.site/project/twine/) . ## Enabling the PyPi Repository[](#enabling-the-pypi-repository "Permalink") **注意:**僅當您的 GitLab 管理員[啟用了對 Package Registry 的支持時,](../../../administration/packages/index.html)此選項才可用. 啟用 PyPi 儲存庫后,默認情況下它將可用于所有新項目. 要為現有項目啟用它,或者要禁用它: 1. 導航到項目的**"設置">"常規">"可見性,項目功能,權限"** . 2. 找到"軟件包"功能并啟用或禁用它. 3. 單擊**保存更改**以使更改生效. 然后,您應該能夠在左側欄中看到" **程序包和注冊表"**部分. ## Getting started[](#getting-started "Permalink") 本節將介紹如何創建一個新的示例 PyPi 包進行上傳. 這是測試**GitLab PyPi Registry**的快速入門. 如果您已經了解如何構建和發布自己的軟件包,請繼續[下一節](#adding-the-gitlab-pypi-repository-as-a-source) . ### Create a project[](#create-a-project "Permalink") 了解如何創建完整的 Python 項目不在本指南的范圍內,但是您可以創建一個小包來測試注冊表. 首先創建一個名為`MyPyPiPackage`的新目錄: ``` mkdir MyPyPiPackage && cd MyPyPiPackage ``` 創建此目錄后,在其中創建另一個目錄: ``` mkdir mypypipackage && cd mypypipackage ``` 在此目錄中創建兩個新文件以設置基本項目: ``` touch __init__.py touch greet.py ``` 在`greet.py` ,添加以下代碼: ``` def SayHello(): print("Hello from MyPyPiPackage") return ``` 在`__init__.py`文件中,添加以下內容: ``` from .greet import SayHello ``` 現在,我們的項目基礎已經完成,我們可以測試代碼是否運行. 在頂部`MyPyPiPackage`目錄中啟動 Python 提示符. 然后運行: ``` >>> from mypypipackage import SayHello >>> SayHello() ``` 您應該看到類似于以下內容的輸出: ``` Python 3.8.2 (v3.8.2:7b3ab5921f, Feb 24 2020, 17:52:18) [Clang 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from mypypipackage import SayHello >>> SayHello() Hello from MyPyPiPackage ``` 驗證示例項目是否按上述要求工作后,接下來就可以創建包了. ### Create a package[](#create-a-package "Permalink") 在您的`MyPyPiPackage`目錄中,我們需要創建一個`setup.py`文件. 運行以下命令: ``` touch setup.py ``` 該文件包含有關我們軟件包的所有信息. 有關此文件的更多信息,請參見[創建 setup.py](https://packaging.python.org/tutorials/packaging-projects/#creating-setup-py) . 對于本指南,我們不需要大量填寫此文件,只需將以下內容添加到您的`setup.py` : ``` import setuptools setuptools.setup( name="mypypipackage", version="0.0.1", author="Example Author", author_email="author@example.com", description="A small example package", packages=setuptools.find_packages(), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], python_requires='>=3.6', ) ``` 保存文件,然后執行如下設置: ``` python3 setup.py sdist bdist_wheel ``` 如果成功,您應該能夠在新創建的`dist`文件夾中看到輸出. 跑: ``` ls dist ``` 并確認您的輸出與以下內容匹配: ``` mypypipackage-0.0.1-py3-none-any.whl mypypipackage-0.0.1.tar.gz ``` 現在,我們的軟件包已全部設置好,可以上傳到**GitLab PyPi 軟件包注冊中心** . 在此之前,我們接下來需要設置身份驗證. ## Adding the GitLab PyPi Repository as a source[](#adding-the-gitlab-pypi-repository-as-a-source "Permalink") ### Authenticating with a personal access token[](#authenticating-with-a-personal-access-token "Permalink") 您將需要以下內容: * 個人訪問令牌. 您可以生成范圍設置為`api`的[個人訪問令牌](../../../user/profile/personal_access_tokens.html) ,以進行存儲庫身份驗證. * 您的來源的合適名稱. * 您的項目 ID,可以在項目的主頁上找到. 編輯`~/.pypirc`文件并添加以下內容: ``` [distutils] index-servers = gitlab [gitlab] repository = https://gitlab.com/api/v4/projects/<project_id>/packages/pypi username = __token__ password = <your personal access token> ``` ### Authenticating with a deploy token[](#authenticating-with-a-deploy-token "Permalink") 您將需要以下內容: * 部署令牌. 您可以生成[令牌部署](./../../project/deploy_tokens/index.html)與`read_package_registry`和/或`write_package_registry`范圍為存儲庫認證. * 您的來源的合適名稱. * 您的項目 ID,可以在項目的主頁上找到. 編輯`~/.pypirc`文件并添加以下內容: ``` [distutils] index-servers = gitlab [gitlab] repository = https://gitlab.com/api/v4/projects/<project_id>/packages/pypi username = <deploy token username> password = <deploy token> ``` ## Uploading packages[](#uploading-packages "Permalink") 上載套件時,請注意: * 允許的最大大小為 50 MB. * 如果您多次上傳具有相同版本的相同程序包,則每次連續上傳都將保存為單獨的文件. 安裝軟件包時,GitLab 將提供最新文件. ### Upload packages with Twine[](#upload-packages-with-twine "Permalink") 如果您按照上面的指南進行操作,則`MyPyPiPackage`軟件包應已準備好上載. 運行以下命令: ``` python3 -m twine upload --repository gitlab dist/* ``` 如果成功,您應該看到以下內容: ``` Uploading distributions to https://gitlab.com/api/v4/projects/<your_project_id>/packages/pypi Uploading mypypipackage-0.0.1-py3-none-any.whl 100%|███████████████████████████████████████████████████████████████████████████████████████████| 4.58k/4.58k [00:00<00:00, 10.9kB/s] Uploading mypypipackage-0.0.1.tar.gz 100%|███████████████████████████████████████████████████████████████████████████████████████████| 4.24k/4.24k [00:00<00:00, 11.0kB/s] ``` 這表明該軟件包已成功上傳. 然后,您可以導航到項目的" **程序包和注冊表"**頁面,并查看上載的程序包. 如果您沒有遵循上述指南,則需要確保已正確構建[軟件包,并使用 setuptools 創建了 PyPi 軟件包](https://packaging.python.org/tutorials/packaging-projects/) . 然后,您可以使用以下命令上傳軟件包: ``` python -m twine upload --repository <source_name> dist/<package_file> ``` Where: * `<package_file>` is your package filename, ending in `.tar.gz` or `.whl`. * `<source_name>`是[安裝過程中使用](#adding-the-gitlab-pypi-repository-as-a-source)的[源名稱](#adding-the-gitlab-pypi-repository-as-a-source) . ## Install packages[](#install-packages "Permalink") 使用以下命令安裝最新版本的軟件包: ``` pip install --index-url https://__token__:<personal_access_token>@gitlab.com/api/v4/projects/<project_id>/packages/pypi/simple --no-deps <package_name> ``` Where: * `<package_name>`是軟件包名稱. * `<personal_access_token>`是具有`read_api`范圍的個人訪問令牌. * `<project_id>`是項目 ID. 如果您遵循上面的指南,并且想測試安裝`MyPyPiPackage`軟件包,則可以運行以下命令: ``` pip install mypypipackage --no-deps --index-url https://__token__:<personal_access_token>@gitlab.com/api/v4/projects/<your_project_id>/packages/pypi/simple ``` 這將導致以下結果: ``` Looking in indexes: https://__token__:****@gitlab.com/api/v4/projects/<your_project_id>/packages/pypi/simple Collecting mypypipackage Downloading https://gitlab.com/api/v4/projects/<your_project_id>/packages/pypi/files/d53334205552a355fee8ca35a164512ef7334f33d309e60240d57073ee4386e6/mypypipackage-0.0.1-py3-none-any.whl (1.6 kB) Installing collected packages: mypypipackage Successfully installed mypypipackage-0.0.1 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看