Nó giúp cài đặt gói Python
$ python setup.py develop
1 trên máy của bạn [cũng có thể là trong $ python setup.py develop
2] để bạn có thể nhập gói $ python setup.py develop
1 từ các dự án khác và từ [i] Python nhắc nhở.Nó thực hiện công việc tương tự của
4, $ python setup.py develop
5, v.v.$ python setup.py develop
Sử dụng
6$ python setup.py develop
Hãy bắt đầu với một số định nghĩa:
Gói - một thư mục/thư mục chứa tệp
$ python setup.py develop
7. Mô -đun - Một tệp Python hợp lệ với tiện ích mở rộng $ python setup.py develop
8. Phân phối - Cách một gói liên quan đến các gói và mô -đun khác.Giả sử bạn muốn cài đặt một gói có tên
$ python setup.py develop
1. Sau đó, bạn làm,$ git clone //github.com/user/foo
$ cd foo
$ python setup.py install
Thay vào đó, nếu bạn không muốn thực sự cài đặt nó nhưng vẫn muốn sử dụng nó. Sau đó làm,
$ python setup.py develop
Lệnh này sẽ tạo các liên kết symlink cho thư mục nguồn trong gói trang web thay vì sao chép mọi thứ. Bởi vì điều này, nó khá nhanh [đặc biệt đối với các gói lớn].
Tạo
6$ python setup.py develop
Nếu bạn có cây gói của bạn như thế nào,
foo
├── foo
│ ├── data_struct.py
│ ├── __init__.py
│ └── internals.py
├── README
├── requirements.txt
└── setup.py
Sau đó, bạn làm như sau trong tập lệnh
$ python setup.py develop
6 của mình để có thể cài đặt trên một số máy:$ python setup.py develop
6 script so that it can be installed on some machine:from setuptools import setup
setup[
name='foo',
version='1.0',
description='A useful module',
author='Man Foo',
author_email='',
packages=['foo'], #same as name
install_requires=['wheel', 'bar', 'greek'], #external packages as dependencies
]
Thay vào đó, nếu cây gói của bạn phức tạp hơn như cái dưới đây:
foo
├── foo
│ ├── data_struct.py
│ ├── __init__.py
│ └── internals.py
├── README
├── requirements.txt
├── scripts
│ ├── cool
│ └── skype
└── setup.py
Sau đó,
$ python setup.py develop
6 của bạn trong trường hợp này sẽ giống như:$ python setup.py develop
6 in this case would be like:from setuptools import setup
setup[
name='foo',
version='1.0',
description='A useful module',
author='Man Foo',
author_email='',
packages=['foo'], #same as name
install_requires=['wheel', 'bar', 'greek'], #external packages as dependencies
scripts=[
'scripts/cool',
'scripts/skype',
]
]
Thêm nhiều thứ vào [
6] và làm cho nó khá: & make it decent:$ python setup.py develop
from setuptools import setup
with open["README", 'r'] as f:
long_description = f.read[]
setup[
name='foo',
version='1.0',
description='A useful module',
license="MIT",
long_description=long_description,
author='Man Foo',
author_email='',
url="//www.foopackage.example/",
packages=['foo'], #same as name
install_requires=['wheel', 'bar', 'greek'], #external packages as dependencies
scripts=[
'scripts/cool',
'scripts/skype',
]
]
foo
├── foo
│ ├── data_struct.py
│ ├── __init__.py
│ └── internals.py
├── README
├── requirements.txt
└── setup.py
4 được sử dụng trong pypi.org làm mô tả readme về gói của bạn.Và cuối cùng, bây giờ bạn đã sẵn sàng để tải gói của mình lên pypi.org để những người khác có thể cài đặt gói của bạn bằng
foo
├── foo
│ ├── data_struct.py
│ ├── __init__.py
│ └── internals.py
├── README
├── requirements.txt
└── setup.py
5.Tại thời điểm này có hai lựa chọn.
- Xuất bản trong máy chủ Test.pypi.org tạm thời để làm quen với quy trình này và sau đó xuất bản nó trên máy chủ pypi.org vĩnh viễn cho công chúng sử dụng gói của bạn.temporary test.pypi.org server to make oneself familiarize with the procedure, and then publish it on the permanent pypi.org server for the public to use your package.
- Xuất bản ngay trên máy chủ pypi.org vĩnh viễn, nếu bạn đã quen với quy trình và có thông tin đăng nhập người dùng của bạn [ví dụ: tên người dùng, mật khẩu, tên gói]permanent pypi.org server, if you are already familiar with the procedure and have your user credentials [e.g., username, password, package name]
Khi tên gói của bạn được đăng ký trong pypi.org, không ai có thể yêu cầu hoặc sử dụng nó. Bao bì Python gợi ý gói Twine cho mục đích tải lên [gói của bạn lên PYPI]. Như vậy,twine package for uploading purposes [of your package to PyPi]. Thus,
Bước đầu tiên là xây dựng các phân phối cục bộ bằng cách sử dụng:
# prereq: wheel [pip install wheel] $ python setup.py sdist bdist_wheel
Sau đó sử dụng
6 để tải lênfoo ├── foo │ ├── data_struct.py │ ├── __init__.py │ └── internals.py ├── README ├── requirements.txt └── setup.py
7 hoặcfoo ├── foo │ ├── data_struct.py │ ├── __init__.py │ └── internals.py ├── README ├── requirements.txt └── setup.py
8:foo ├── foo │ ├── data_struct.py │ ├── __init__.py │ └── internals.py ├── README ├── requirements.txt └── setup.py
$ twine upload --repository testpypi dist/* username: *** password: ***
Sẽ mất vài phút để gói xuất hiện trên
foo
├── foo
│ ├── data_struct.py
│ ├── __init__.py
│ └── internals.py
├── README
├── requirements.txt
└── setup.py
7. Khi bạn hài lòng với nó, sau đó bạn có thể tải gói của mình lên chỉ mục thực & vĩnh viễn của pypi.org chỉ bằng:$ twine upload dist/*
Tùy chọn, bạn cũng có thể ký vào các tệp trong gói của mình với
from setuptools import setup
setup[
name='foo',
version='1.0',
description='A useful module',
author='Man Foo',
author_email='',
packages=['foo'], #same as name
install_requires=['wheel', 'bar', 'greek'], #external packages as dependencies
]
0 bằng cách:$ python setup.py develop
0Đọc tiền thưởng::
Xem mẫu
6 từ một dự án thực sự ở đây:$ python setup.py develop
2from setuptools import setup setup[ name='foo', version='1.0', description='A useful module', author='Man Foo', author_email='', packages=['foo'], #same as name install_requires=['wheel', 'bar', 'greek'], #external packages as dependencies ]
6 from a real project here:$ python setup.py develop
2from setuptools import setup setup[ name='foo', version='1.0', description='A useful module', author='Man Foo', author_email='', packages=['foo'], #same as name install_requires=['wheel', 'bar', 'greek'], #external packages as dependencies ]
PEP 517, setuptools
Tại sao lại là Twine? Sử dụng Twine