Hướng dẫn how are libraries made in python? - thư viện được tạo trong python như thế nào?

Ảnh của Iñaki del Olmo trên unplash

Bạn đã bao giờ muốn tạo một thư viện Python, mặc dù cho nhóm của bạn tại nơi làm việc hoặc cho một số dự án nguồn mở trực tuyến? Trong blog này, bạn sẽ học cách!

Hướng dẫn dễ thực hiện nhất khi bạn đang sử dụng cùng một công cụ, tuy nhiên bạn cũng có thể sử dụng các công cụ khác nhau.

Các công cụ được sử dụng trong hướng dẫn này là:- Lệnh nhắc lệnh Linux- Mã phòng thu trực quan
- Linux command prompt
- Visual Studio Code

Bước 1: Tạo một thư mục trong đó bạn muốn đặt thư viện của mình dấu nhắc lệnh của mình và tạo một thư mục trong đó bạn sẽ tạo thư viện Python của mình.
Open your command prompt and create a folder in which you will create your Python library.

Hãy nhớ:- Với pwd, bạn có thể thấy thư mục làm việc hiện tại của mình .- Với ls, bạn có thể liệt kê các thư mục và tệp trong thư mục của mình. trong thư mục làm việc của bạn.
- With pwd you can see your present working directory.
- With ls you can list the folders and files in your directory.
- With cd you can change the current present directory you are in.
- With mkdir you can create a new folder in your working directory.

Trong trường hợp của tôi, thư mục tôi sẽ làm việc với mypythonlibrary. Thay đổi thư mục làm việc hiện tại để trở thành thư mục của bạn.

Bước 2: Tạo một môi trường ảo cho thư mục của bạn khi bắt đầu dự án của bạn, luôn luôn là một ý tưởng tốt để tạo ra một môi trường ảo để gói gọn dự án của bạn. Một môi trường ảo bao gồm một phiên bản Python nhất định và một số thư viện.
When starting your project, it is always a good idea to create a virtual environment to encapsulate your project. A virtual environment consists of a certain Python version and some libraries.

Môi trường ảo ngăn chặn vấn đề chạy vào các vấn đề phụ thuộc sau này. Ví dụ, trong các dự án cũ, bạn có thể đã làm việc với các phiên bản cũ hơn của thư viện ____10. Một số mã cũ, từng hoạt động rất đẹp, có thể ngừng hoạt động khi bạn cập nhật phiên bản của nó. Có lẽ các phần của

from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713
0 không còn tương thích với các phần khác trong chương trình của bạn. Tạo môi trường ảo ngăn chặn điều này. Chúng cũng hữu ích trong các trường hợp khi bạn hợp tác với người khác và bạn muốn đảm bảo rằng ứng dụng của bạn đang hoạt động trên máy tính của họ và ngược lại.

[Đảm bảo bạn đã thay đổi thư mục làm việc hiện tại thành thư mục bạn sẽ tạo thư viện Python của bạn trong [

from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713
2].].

Hãy tiếp tục và tạo ra một môi trường ảo bằng cách gõ: ________ 13

from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713
3

Khi nó được tạo, bây giờ bạn phải kích hoạt môi trường bằng cách sử dụng: ________ 14

from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713
4

Kích hoạt môi trường ảo sửa đổi các biến đường dẫn và các biến shell để trỏ đến thiết lập python bị cô lập cụ thể mà bạn đã tạo. PATH là một biến môi trường trong Linux và các hệ điều hành giống như UNIX khác cho Shell biết các thư mục nào để tìm kiếm các tệp thực thi [tức là, các chương trình sẵn sàng để chạy] để đáp ứng các lệnh do người dùng phát hành. Lời nhắc lệnh sẽ thay đổi để chỉ ra môi trường ảo nào bạn hiện đang ở bằng cách dành cho việc dành [

from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713
5].

Trong môi trường của bạn, hãy đảm bảo bạn đã cài đặt PIP

from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713
6,
from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713
7 và
from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713
8. Chúng tôi sẽ cần chúng sau này để xây dựng thư viện Python của chúng tôi .________ 19
from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713
9

Bước 3: Tạo mã Visual Studio cấu trúc thư mục, hãy mở thư mục của bạn mypythonlibrary [hoặc bất kỳ tên nào bạn đã đặt cho thư mục của mình]. Nó sẽ trông giống như thế này:
In Visual Studio Code, open your folder mypythonlibrary [or any name you have given your folder]. It should look something like this:

Bây giờ bạn có thể bắt đầu thêm các thư mục và tệp vào dự án của bạn. Bạn có thể làm điều này thông qua dấu nhắc lệnh hoặc trong chính Code Code Visual Studio.

  1. Tạo một tệp trống có tên
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    1. Đây là một trong những tệp quan trọng nhất khi tạo thư viện Python!
  2. Tạo một tệp trống có tên
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    2. Đây là nơi bạn có thể viết Markdown để mô tả nội dung của thư viện cho người dùng khác.
  3. Tạo một thư mục có tên
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    3 hoặc bất cứ điều gì bạn muốn thư viện Python của bạn được gọi khi bạn cài đặt nó. [Tên phải là duy nhất trên PIP nếu bạn muốn xuất bản nó sau.]
  4. Tạo một tệp trống bên trong
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    3 được gọi là
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    5. Về cơ bản, bất kỳ thư mục nào có tệp
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    5 trong đó, sẽ được đưa vào thư viện khi chúng tôi xây dựng nó. Hầu hết thời gian, bạn có thể để các tệp
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    5 trống. Sau khi nhập, mã trong
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    5 được thực thi, do đó, nó chỉ chứa lượng mã tối thiểu cần thiết để có thể chạy dự án của bạn. Hiện tại, chúng tôi sẽ để chúng như vậy.
  5. Ngoài ra, trong cùng một thư mục, tạo một tệp có tên
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    9.
  6. Và cuối cùng, tạo một bài kiểm tra thư mục trong thư mục gốc của bạn. Bên trong, tạo một tệp
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license='MIT',
    ]
    5 trống và trống
    from setuptools import find_packages, setupsetup[
    name='mypythonlib',
    packages=find_packages[include=['mypythonlib']],
    version='0.1.0',
    description='My first Python library',
    author='Me',
    license'MIT',
    ]
    1 trống.

Thiết lập của bạn bây giờ sẽ trông giống như thế này:

Bước 4: Tạo nội dung cho thư viện của bạn để đặt các chức năng bên trong thư viện của bạn, bạn có thể đặt chúng trong tệp

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]
9. Ví dụ: sao chép chức năng Haversine trong tệp của bạn:
To put functions inside your library, you can place them in the
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]
9 file. For example, copy the haversine function in your file:

from math import radians, cos, sin, asin, sqrtdef haversine[lon1: float, lat1: float, lon2: float, lat2: float] -> float:
"""
Calculate the great circle distance between two points on the
earth [specified in decimal degrees], returns the distance in
meters.
All arguments must be of equal length. :param lon1: longitude of first place
:param lat1: latitude of first place
:param lon2: longitude of second place
:param lat2: latitude of second place
:return: distance in meters between the two sets of coordinates
"""
# Convert decimal degrees to radians
lon1, lat1, lon2, lat2 = map[radians, [lon1, lat1, lon2, lat2]]

# Haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin[dlat/2]**2 + cos[lat1] * cos[lat2] * sin[dlon/2]**2
c = 2 * asin[sqrt[a]]
r = 6371 # Radius of earth in kilometers

return c * r

Chức năng này sẽ cho chúng ta khoảng cách tính bằng mét giữa hai điểm vĩ độ và kinh độ.

Bất cứ khi nào bạn viết bất kỳ mã nào, nó rất được khuyến khích để viết các bài kiểm tra cho mã này. Để kiểm tra với Python, bạn có thể sử dụng các thư viện

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license'MIT',
]
3 và
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license'MIT',
]
4. Cài đặt thư viện trong môi trường ảo của bạn: ________ 35
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license'MIT',
]
5

Hãy để tạo ra một bài kiểm tra nhỏ cho chức năng Haversine. Sao chép phần sau và đặt nó bên trong tệp

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license'MIT',
]
1:

from mypythonlib import myfunctionsdef test_haversine[]:
assert myfunctions.haversine[52.370216, 4.895168, 52.520008,
13.404954] == 945793.4375088713

Cuối cùng, hãy để tạo ra một tệp

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]
1, điều đó sẽ giúp chúng tôi xây dựng thư viện. Một phiên bản giới hạn của
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]
1 sẽ trông giống như thế này:

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]

Biến tên trong Cài đặt giữ bất kỳ tên nào bạn muốn tệp bánh xe gói của bạn có. Để làm cho nó dễ dàng, chúng tôi sẽ đặt cho nó cùng tên với thư mục.

Đặt các gói bạn muốn tạo về nguyên tắc mà bạn có thể sử dụng

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license'MIT',
]
9 mà không có bất kỳ đối số nào, điều này có khả năng có khả năng dẫn đến các gói không mong muốn được đưa vào. Điều này có thể xảy ra, ví dụ, nếu bạn đưa một
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]
5 vào thư mục
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
1 của bạn [mà chúng tôi đã làm]. Ngoài ra, bạn cũng có thể sử dụng đối số loại trừ để ngăn chặn rõ ràng việc đưa các bài kiểm tra vào gói, nhưng điều này hơi mạnh hơn một chút. Hãy để thay đổi nó thành như sau:
While in principle you could use
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license'MIT',
]
9 without any arguments, this can potentially result in unwanted packages to be included. This can happen, for example, if you included an
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]
5 in your
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
1 directory [which we did]. Alternatively, you can also use the exclude argument to explicitly prevent the inclusion of tests in the package, but this is slightly less robust. Let’s change it to the following:

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license'MIT',
]

Đặt các yêu cầu Thư viện của bạn cần thiết mà PIP không sử dụng

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
2 /
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
3 khi dự án của bạn được cài đặt dưới dạng phụ thuộc của người khác. Nói chung, đối với điều đó, bạn sẽ phải chỉ định các phụ thuộc trong các đối số
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
4 và
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
5 trong tệp
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]
1 của bạn.
Note that pip does not use
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
2 /
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
3 when your project is installed as a dependency by others. Generally, for that, you will have to specify dependencies in the
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
4 and
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
5 arguments in your
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]
1 file.

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
7 nên được giới hạn trong danh sách các gói hoàn toàn cần thiết. Điều này là do bạn không muốn khiến người dùng cài đặt các gói không cần thiết. Cũng lưu ý rằng bạn không cần liệt kê các gói là một phần của thư viện Python tiêu chuẩn.

Tuy nhiên, vì chúng tôi chỉ xác định chức năng Haversine cho đến nay và nó chỉ sử dụng thư viện toán học [luôn có sẵn trong Python], chúng tôi có thể để lại đối số này.

Có lẽ bạn có thể nhớ chúng tôi đã cài đặt thư viện

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license'MIT',
]
3 trước đó. Tất nhiên, bạn không muốn thêm
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license'MIT',
]
3 vào các phụ thuộc của mình trong
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]
4: Đó là yêu cầu của người dùng gói của bạn. Để tự động cài đặt nó chỉ khi bạn chạy thử nghiệm, bạn có thể thêm phần sau vào
from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
]
1 của mình:

from setuptools import find_packages, setupsetup[
name='mypythonlib',
packages=find_packages[include=['mypythonlib']],
version='0.1.0',
description='My first Python library',
author='Me',
license='MIT',
install_requires=[],
setup_requires=['pytest-runner'],
tests_require=['pytest==4.4.1'],
test_suite='tests',
]

Chạy: ________ 52 sẽ thực hiện tất cả các thử nghiệm được lưu trữ trong thư mục ‘Thử nghiệm.
pwd2will execute all tests stored in the ‘tests’ folder.

Bước 5: Xây dựng thư viện của bạn rằng tất cả nội dung ở đó, chúng tôi muốn xây dựng thư viện của chúng tôi. Hãy chắc chắn rằng thư mục làm việc hiện tại của bạn là ____ 53 [vì vậy thư mục gốc của dự án của bạn]. Trong dấu nhắc lệnh của bạn, chạy: ________ 54
Now that all the content is there, we want to build our library. Make sure your present working directory is pwd3[so the root folder of your project]. In your command prompt, run:
pwd4

Tệp bánh xe của bạn được lưu trữ trong thư mục Dist Dist hiện đang được tạo. Bạn có thể cài đặt thư viện của mình bằng cách sử dụng: ________ 55
pwd5

Lưu ý rằng bạn cũng có thể xuất bản thư viện của mình lên một hệ thống tệp nội bộ trên mạng nội bộ tại nơi làm việc của bạn hoặc vào kho PYPI chính thức và cài đặt nó từ đó.

Khi bạn đã cài đặt thư viện Python của mình, bạn có thể nhập nó bằng cách sử dụng: ________ 56
pwd6

Thư viện Python được thực hiện như thế nào?

Thư viện, gói và mô -đun PY có các biến, chức năng, lớp, câu lệnh, vv liên quan đến một nhiệm vụ cụ thể.Gói là một tập hợp các mô -đun Python theo không gian tên chung được tạo bằng cách đặt các mô -đun khác nhau trên một thư mục duy nhất cùng với một số tệp đặc biệt [chẳng hạn như __init__.py].created by putting different modules on a single directory along with some special files [such as __init__.py].

Chúng ta có thể tạo thư viện của riêng mình trong Python không?

Tạo gói Python Tạo gói Python và đặt tên cho nó khi bạn muốn người dùng nhập thư viện của mình.Ví dụ: chúng tôi sẽ tạo gói Medium Medium_Multiply.Nó sẽ chứa tất cả các mã của thư viện của chúng tôi.

Làm thế nào để bạn xây dựng một thư viện?

Tạo một mô -đun thư viện..
Nhấp vào Tệp> Mới> Mô -đun mới ..
Trong cửa sổ Tạo mô -đun mới xuất hiện, nhấp vào Thư viện Android, sau đó nhấp vào Tiếp theo.....
Đặt tên cho thư viện của bạn và chọn phiên bản SDK tối thiểu cho mã trong thư viện, sau đó nhấp vào Kết thúc ..

Những thư viện nào được xây dựng thành Python?

10 thư viện Python hàng đầu:..
TensorFlow..
Scikit-Learn..
Numpy..
Keras..
PyTorch..
LightGBM..
SciPy..

Bài Viết Liên Quan

Chủ Đề