Bạn có thể đóng gói python không?

Nếu bạn đóng gói một gói Python để xuất bản, hãy làm thế nào để bạn chắc chắn rằng tất cả các thành viên phụ thuộc cần phải được bao gồm? . py là trái tim và trung tâm của các dự án Python được cài đặt với PIP. Nói một cách đơn giản, thiết lập. py is a build file sample was a parsing with Python Setuptools Python.  

Nội dung chính Hiển thị

  • Cập nhật các công cụ Python
  • Thành lập. py ví dụ & nbsp;
  • Ví dụ Install_Requires
  • Sự phụ thuộc không được tìm thấy trong pypi  
  • Bao bì Python cho Windows và Mac
  • Active platform
  • Kết luận. Tương lai của & nbsp;
  • Làm thế nào để tôi bao gồm các phụ thuộc vào dự án Python?
  • Làm thế nào để đóng gói Python?
  • Làm cách nào để kiểm tra xem một phụ thuộc có được cài đặt trong Python không?
  • Các công cụ quản lý phụ thuộc lẫn nhau trong Python là gì?
  • Gói trò chơi phụ thuộc Python là gì?
  • Làm thế nào để Python xử lý các gói phụ thuộc?

Setuptools là một thư viện quy trình phát triển gói và tiện ích để xây dựng các dự án Python dựa trên các gói và các thành viên phụ thuộc của chúng được liệt kê trong thiết lập tệp lệnh. py. Một tệp Python chỉ dựa trên thư viện tiêu chuẩn có thể được phân phối lại và tái sử dụng mà không cần sử dụng setuptools. Nhưng đối với các dự án bao gồm nhiều tệp, cần thêm thư viện hoặc cần một phiên bản công cụ có thể của Python, Setuptools sẽ được yêu cầu.  

Cập nhật các công cụ Python

Bước đầu tiên là một hành động tốt nhất. chắc chắn rằng các công cụ của bạn đã được cập nhật

$ python -m pip install --upgrade pip setuptools

Thành lập. py ví dụ & nbsp;

Lệnh sau đây là một ví dụ về cách tạo tập lệnh thiết lập. py for your project. Câu nêu ra thông tin bạn cần cung cấp, bao gồm

  • Tên dự án - Nhập tên cho dự án của bạn trong báo giá
  • Các gói để bao gồm trong phân phối - đối số mặc định Find_Packages (',)find_packages(',') đối số mặc định sẽ . py và được đặt trong thư mục cục bộ nơi thiết lập. py đã được cài đặt
  • Số phiên bản dự án - Nhập số phiên bản cho dự án trong báo giá
  • Liệt kê giấy phép cho dự án - Nhập tên của giấy phép bạn đang cấp phép cho dự án của mình để sử dụng theo trích dẫn
  • Mô tả ngắn về thư viện của bạn - Nhập mô tả ngắn gọn về dự án của bạn trong trích dẫn
  • Mô tả dài về thư viện của bạn - Nhập mô tả chi tiết hơn về dự án của bạn trong văn bản hoặc sử dụng Markdown
  • Tên của bạn - Nhập tên của bạn trong đoạn trích dẫn để biểu thị ai là tác giả
  • Địa chỉ email của bạn - Tùy chọn cung cấp địa chỉ email trong báo giá mà người dùng có thể liên hệ với bạn
  • Liên kết đến kho lưu trữ hoặc trang web GitHub của bạn - Tùy chọn cung cấp một liên kết đến dự án repo của bạn
  • Tải xuống liên kết từ nơi dự án có thể được tải xuống - cung cấp một URL cho mã nguồn dự án của bạn trong báo giá
  • Danh sách các từ khóa - Cung cấp danh sách các từ khóa trong các dấu trích dẫn được liên kết với dự án của bạn để giúp việc tìm kiếm dễ dàng hơn
  • Danh sách dự án phụ thuộc - Cung cấp danh sách tất cả các dự án phụ thuộc mà dự án của bạn yêu cầu trong khung hình vuông. Cách dễ nhất để cung cấp điều này là sao chép và dán từ phần install_requires (xem bên dưới). Phần install_requires (xem bên dưới).
  • https. //pypi. org/ classifiers - Cung cấp một danh sách tất cả các phân loại ứng dụng cho dự án của bạn trong một dấu phân loại. Bạn có thể tìm thấy một danh sách đầy đủ các loại phân loại tại https. //pypi. org/ phân loạihttps. //pypi. tổ chức/phân loại
from distutils.core import setup from setuptools import find_packages import os # Optional project description in README.md: current_directory = os.path.dirname(os.path.abspath(__file__)) try:    with open(os.path.join(current_directory, 'README.md'), encoding='utf-8') as f:        long_description = f.read() except Exception:    long_description = '' setup( # Project name: name='', # Packages to include in the distribution: packages=find_packages(','), # Project version number: version='', # List a license for the project, eg. MIT License license='', # Short description of your library: description='', # Long description of your library: long_description=long_description, long_description_content_type='text/markdown', # Your name: author='', # Your email address: author_email='', # Link to your github repository or website: url='', # Download Link from where the project can be downloaded from: download_url='', # List of keywords: keywords=[], # List project dependencies: install_requires=[], # //pypi.org/classifiers/ classifiers=[] )

Ví dụ Install_Requires

install_requires là một phần trong thiết lập tệp. py mà bạn phải nhập danh sách các phụ thuộc tối thiểu cần thiết cho một dự án để chạy chính xác. Khi pip run setup. py, nó sẽ cài đặt tất cả các thuộc tính được liệt kê trong install_requires. là một phần trong thiết lập. py mà bạn cần nhập danh sách các phụ thuộc tối thiểu cần thiết để dự án chạy chính xác. Khi pip chạy thiết lập. py, nó sẽ cài đặt tất cả các phụ thuộc được liệt kê trong install_requires.

Ví dụ. nếu dự án của bạn bao gồm matplotlib, bạn sẽ cần phải liệt kê bảng kê của nó, cũng như sự phụ thuộc của nó trong numpy trong install_requires như được hiển thị bên dưới

setup( ... install_requires=[ '<matplotlib>', '<numpy>' ] ...) Example of Install_requires with Platform Specific Dependencies 

Bạn có thể sửa đổi install_requires bằng cách thêm vào nền tảng cụ thể và công cụ có thể phiên bản & nbsp; . Chẳng hạn, nếu ví dụ trước đây của chúng tôi bao gồm matplotlib v3. 2. 1 và numpy v1. 17. 4 trên Python 3. 6. 6 Đối với Linux, tôi có thể chỉ định. install_requires bằng cách thêm các thành phần phụ thuộc theo nền tảng và theo phiên bản cụ thể, tùy thuộc vào môi trường mà dự án sẽ được cài đặt trên đó. Chẳng hạn, nếu ví dụ trước của chúng tôi bao gồm matplotlib v3. 2. 1 và numpy v1. 17. 4 trên Python 3. 6. 6 cho Linux, chúng tôi có thể chỉ định.

setup( ... install_requires=[ "<matplotlib>;python_version<'<3.6.6>'", "<numpy> >= <1.17.4>;platform_system=='<Linux>'"  ...)

To install a file setup. py bao gồm các thuộc tính được liệt kê trong install_inwires

$ python setup.py install 

Khi lệnh được chạy, tất cả các phụ thuộc chưa được cài đặt sẽ được tải xuống, xây dựng (nếu cần) và được cài đặt. Bất kỳ tập lệnh nào yêu cầu các phụ thuộc cụ thể trong thời gian chạy sẽ được cài đặt với trình bao bọc chắc chắn các phiên bản chính được thêm vào sys. Path (đường dẫn hệ thống). sys. đường dẫn (đường dẫn hệ thống).

Sự phụ thuộc không được tìm thấy trong pypi  

Nếu dự án của bạn có yêu cầu thuộc tính phụ thuộc không nằm trong Chỉ số gói Python (PYPI), bạn vẫn có thể bao gồm chúng nếu chúng có thể truy cập được qua HTTP và được đóng gói dưới định dạng tệp trứng, tệp. py hoặc VCS (kiểm soát phiên bản Hệ thống) Kho lưu trữ, chẳng hạn như Git hoặc Subversion

Để tải xuống các phần phụ thuộc không tìm thấy trong PYPI, bạn cần thêm URL vào phần phụ thuộc_links trong Thiết lập () trong thiết lập tệp. py. Giả sử rằng các phụ thuộc được đóng gói chính xác, chúng sẽ được cài đặt tự động

setup( .. dependency_links=['//github.com/<username>/<reponame>/tarball/master#egg=<packagename>-<version#>'] ...

Để kiểm tra sự phụ thuộc không tìm thấy trong PYPI, hãy thay thế - bằng _ trong tên gói và phiên bản # trong các đối số phụ thuộc_links

dependency_links=['//github.com/<username>/<reponame>/tarball/master#egg=<packagename>_<version#>']

Bao bì Python cho Windows và Mac

Trong một số trường hợp, nó có thể muốn phân phối lại mã Python của bạn như

Chủ đề