Npm Python là gì?

Gói npm python-shell nhận được tổng cộng 21.719 lượt tải xuống mỗi tuần. Do đó, chúng tôi đã chấm điểm mức độ phổ biến của vỏ trăn để được Công nhận

Dựa trên số liệu thống kê dự án từ kho lưu trữ GitHub cho gói npm python-shell, chúng tôi thấy rằng nó đã được gắn dấu sao 1.866 lần và 185 dự án khác trong hệ sinh thái phụ thuộc vào nó

Số lượt tải xuống được tính là trung bình động trong khoảng thời gian 12 tháng qua, không bao gồm các ngày cuối tuần và các điểm dữ liệu bị thiếu đã xác định

Phân tích sâu hơn về trạng thái bảo trì của python dựa trên nhịp phiên bản npm đã phát hành, hoạt động của kho lưu trữ và các điểm dữ liệu khác xác định rằng việc bảo trì của nó là Không hoạt động

Một tín hiệu bảo trì dự án quan trọng cần xem xét đối với python là nó không thấy bất kỳ phiên bản mới nào được phát hành cho npm trong 12 tháng qua và có thể được coi là một dự án đã ngừng hoạt động hoặc ít nhận được sự quan tâm từ những người bảo trì của nó

Trong tháng trước, chúng tôi không tìm thấy bất kỳ hoạt động yêu cầu kéo nào hoặc thay đổi trạng thái vấn đề đã được phát hiện đối với kho lưu trữ GitHub

Theo mặc định, đầu ra NPM được truyền qua và lệnh gọi hàm sẽ đợi NPM kết thúc. Nếu bạn muốn tắt tiếng đầu ra hoặc tương tác với quy trình, hãy chờ = Sai và bạn sẽ nhận được một quy trình con. POpen đối tượng trở lại

Nếu bạn là nhà phát triển trong Javascript/Node. js, bạn đã sử dụng

package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
3. Đó là cơ quan đăng ký phần mềm lớn nhất thế giới và hệ sinh thái xung quanh nó tiên tiến và trưởng thành. Tôi nhận ra điều đó khi tôi cố chuyển
package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
4, một gói npm mã nguồn mở mà tôi duy trì, sang Python. Tôi đã dành hàng tuần để tìm ra những thứ rất trực quan đối với tôi trong thế giới Javascript. Blog này sẽ liệt kê một số điểm khác biệt chính mà tôi tìm thấy giữa hai hệ sinh thái cho bất kỳ ai khác đi trên cùng một con đường. Đến cuối bài đăng này, chúng tôi sẽ có thể cài đặt gói của mình bằng cách sử dụng

1
pip install 

một gói là gì?

Trong

package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
3, bất kỳ thư mục nào có tệp
package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
6 là một gói. Trong thế giới Python, chúng tôi cần một tệp có tên
package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
7 trong thư mục gốc để biến dự án của chúng tôi thành một gói cho PyPi, một kho lưu trữ chung cho các gói Python. Tệp này được sử dụng để khai báo siêu dữ liệu như tên, phiên bản, tác giả và thậm chí cả các phần phụ thuộc [có phần tóm tắt]. Nhìn vào thiết lập mẫu này. py để có ý tưởng

Thông thường, mã gói thực tế nằm trong một thư mục có tên gói và bắt buộc phải có tệp

package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
8 trong đó để chỉ ra rằng đó là một mô-đun. Vì vậy, cấu trúc thư mục sẽ trông ít nhiều giống như

package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py

Trong cấu trúc này, mã gói thực tế của bạn sẽ có trong

package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
8 và/hoặc bất kỳ tệp python nào khác trong thư mục này như
1
0

quản lý phụ thuộc

Quản lý phụ thuộc là một lĩnh vực mà tôi thấy hệ sinh thái Python còn thiếu và nguyên thủy.

package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
3 có các khái niệm như
1
2 và
1
3 và
1
4 giúp việc quản lý phụ thuộc dễ dàng hơn. Tệp kê khai
package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
7 có một phần gọi là
1
6, đây là danh sách các phụ thuộc cần thiết để chạy dự án. Các phụ thuộc này được tải xuống trong khi cài đặt gói bằng cách sử dụng
1
7. Nó không được sử dụng rộng rãi để xác định chính xác các phụ thuộc và phụ thuộc của các phụ thuộc

Thay vào đó, sự kết hợp giữa môi trường ảo và tệp yêu cầu được sử dụng

Môi trường ảo

package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
3 cho phép cài đặt các gói trên toàn cầu hoặc cục bộ cho một dự án. Trong
1
7, tất cả các gói được cài đặt trên toàn cầu. Để tách các phụ thuộc cục bộ khỏi các gói toàn hệ thống, một môi trường ảo được tạo chứa tất cả các phụ thuộc cục bộ của dự án và thậm chí cả bản phân phối Python cục bộ. Mã chạy trong môi trường ảo không yêu cầu bất kỳ sự phụ thuộc hệ thống nào, do đó, người ta có thể yên tâm rằng mã sẽ chạy trong tất cả các hệ thống ở bất kỳ nơi nào môi trường ảo cục bộ được thiết lập chính xác

Có nhiều cách để thiết lập môi trường ảo, như

1
00 và
1
01. Tôi thấy trước đây là dễ sử dụng nhất

1
1
0

Lệnh trên tạo một môi trường ảo trong thư mục

1
02, có nghĩa là thư mục này sẽ chứa mọi thứ cần thiết để chạy chương trình bao gồm các bản phân phối Python và pip. Thư mục này không cần phải cam kết kiểm soát phiên bản. Để sử dụng môi trường ảo, nó phải được “kích hoạt”

1
1
6

Hồ sơ yêu cầu

Mỗi môi trường ảo đều có bản phân phối pip và Python riêng. Vì vậy, đó là một phương tiện rõ ràng khi bạn bắt đầu. Khi chúng tôi cài đặt các phụ thuộc, chúng tôi có thể tạo nhật ký về chúng bằng cách sử dụng

1
1
8

Điều này sẽ ghi lại tất cả các gói và phiên bản của chúng được cài đặt bởi pip trong tệp

1
03. Tên tệp có thể là bất kỳ thứ gì nhưng đó là quy ước trong cộng đồng Python để sử dụng tên này. Không có khái niệm về devDependencies trong Python nhưng không có gì lạ khi một số dự án có
1
04 để ghi lại devDependencies của dự án. Đây là một tệp yêu cầu mẫu

Việc cài đặt các phụ thuộc của dự án bây giờ có thể được thực hiện với

1
pip install 
0

Tài liệu

1
05 là cách phổ biến nhất để ghi lại mã trong JavaScript và danh sách các công cụ tạo tài liệu gần như dừng lại ở đó. Tài liệu bằng Python được thực hiện rất nghiêm túc

nhân sư

1
06 là trình tạo tài liệu cho Python có thể được sử dụng theo nhiều cách khác nhau nhờ có sẵn nhiều tiện ích mở rộng. Để bắt đầu với sphinx, chúng tôi cần một tệp
1
07 sẽ có cấu hình cho sphinx. Tệp có thể được tạo bằng tiện ích
1
08 CLI. Đây là một mẫu conf. py để bắt đầu

Hệ sinh thái Sphinx và Python ưu tiên sử dụng

1
09 [reST] cho tài liệu thay vì Markdown vốn phổ biến trong thế giới JavaScript. M↓ cũng có thể được sử dụng với Sphinx, nhưng nó hơi phức tạp và reST rất giống với M↓. Đây là một README mẫu trong phần còn lại

tài liệu

Sphinx có thể xem qua các nhận xét đặc biệt trong mã Python và đưa chúng vào tài liệu. Những nhận xét này được gọi là

1
0 được sử dụng để mô tả các hàm, lớp, v.v. và rất giống với JSDocs trong JavaScript và JavaDocs trong Java. Đây là một phương pháp được ghi lại bằng Docstrings

pip install 
1
pip install 
2

Có một số định dạng để viết Docstrings, bản thân nó có thể là một chủ đề thảo luận. Tôi thấy mình quay lại hướng dẫn này của RealPython và tôi khuyên bạn nên đọc nó để hiểu sâu hơn về Docstrings. Sử dụng kết hợp các tệp reSt và Docstrings, chúng tôi có thể tạo tài liệu bằng Sphinx ở dạng như PDF và HTML. Đây là tài liệu HTML mẫu được tạo bằng Sphinx

Có những lựa chọn thay thế ít phổ biến hơn cho Sphinx cũng có thể được sử dụng cho tài liệu, đáng chú ý nhất là ReadTheDocs

bài kiểm tra

Tôi thấy viết bài kiểm tra đơn vị bằng Python dễ hơn bằng JavaScript do có sẵn các công cụ tích hợp và hoàn thiện

đơn vị nhất

Python có một mô-đun tích hợp sẵn

1
1 có thể được sử dụng để chạy thử nghiệm. Cú pháp rất giống với Jest hoặc Mocha. Mỗi "bài kiểm tra" là một lớp và mọi phương thức lớp là một trường hợp thử nghiệm. Các phương thức như
1
2 và
1
3 có ý nghĩa đặc biệt và tương đương với các phương thức
1
4 và
1
5 được thấy trong các khung kiểm tra JavaScript. Đây là một tập tin thử nghiệm mẫu. Các bài kiểm tra được thực hiện bởi

1
pip install 
4

Pytest và nose2 là một số lựa chọn thay thế nhưng tôi thấy

1
1 đủ

học thuyết

Trước đó trong phần Tài liệu, chúng ta đã thảo luận về Docstrings. Phần Ví dụ trong Tài liệu cung cấp cho người dùng hiểu cách sử dụng chức năng. Điều tuyệt vời là chúng ta cũng có thể chạy ví dụ dựa trên bài kiểm tra đơn vị tự động, sử dụng doctest [một mô-đun tích hợp khác]. Điều này có thể giữ cho tài liệu và triển khai đồng bộ

xuất bản

Các gói có thể được xuất bản lên PyPi sau khi xây dựng. Trước đó, các bản dựng được tạo ở định dạng Egg, tuy nhiên hiện tại nó đang được thay thế bằng định dạng Bánh xe. Để tạo bản dựng bánh xe, chúng ta cần cài đặt

1
7 và
1
8

1
pip install 
6

Bây giờ bản dựng có thể được tạo bằng cách chạy

1
pip install 
8

Thao tác này sẽ tạo hai tệp trong thư mục

1
9

  • Một có tiện ích mở rộng
    1
    60 là kho lưu trữ nguồn
  • Một cái khác có phần mở rộng
    1
    61 là tệp bản dựng đã sẵn sàng để cài đặt

Bây giờ chúng tôi cần tải gói xây dựng lên PyPi. Chúng tôi cần

1
62 cho điều đó

1
package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
0

Bước cuối cùng, tải lên bản dựng

1
package-project
├── setup.py
└── my-package
    ├── __init__.py
    └── lib.py
2

1
63 ở đây cho phép bạn chọn một kho lưu trữ gói cụ thể như đăng ký npm tùy chỉnh hoặc riêng tư. Nó có thể được cấu hình bằng tệp
1
64

tài nguyên bổ sung

Hai tài nguyên đã giúp tôi rất nhiều trong việc giải quyết các vấn đề của mình là

  1. Hướng dẫn sử dụng bao bì Python chính thức. Tôi khuyên bạn nên đi qua nó một lần
  2. con trăn thật. Tôi khuyên bạn nên nhấp vào bất kỳ liên kết nào từ trang web này xuất hiện trong kết quả tìm kiếm

Đó là một trải nghiệm thú vị đối với tôi khi giải quyết tất cả những thách thức gặp phải khi tôi đang trên hành trình xuất bản gói đầu tiên của mình trên PyPi. Một khung thử nghiệm trưởng thành là một luồng gió mới trong khi quản lý phụ thuộc và tạo tài liệu là một nhiệm vụ khó khăn do có tất cả các công cụ khác nhau để quản lý. Cuối cùng, tôi đã xuất bản password_validator và tôi hài lòng với kết quả

Hãy liên hệ trong các nhận xét hoặc trên Twitter của tôi nếu bạn gặp bất kỳ vấn đề nào với các bước tôi đã đề cập ở đây. Chúc mừng xuất bản

npm được sử dụng để làm gì?

npm là Cơ quan đăng ký phần mềm lớn nhất thế giới. Sổ đăng ký chứa hơn 800.000 gói mã. Các nhà phát triển nguồn mở sử dụng npm để chia sẻ phần mềm . Nhiều tổ chức cũng sử dụng npm để quản lý phát triển tư nhân.

Npm có hoạt động với Python không?

NPM có một gói gọi là windows-build-tools sẽ tự động cài đặt mọi thứ bạn cần để nút-gyp hoạt động, bao gồm các công cụ xây dựng của Microsoft, trình biên dịch, Python và mọi thứ khác cần thiết để xây dựng các mô-đun Node gốc trên Windows

Npm có giống với nút không?

node là một khung có thể chạy mã JavaScript trên máy của bạn trong khi npm là trình quản lý gói . Sử dụng npm, chúng ta có thể cài đặt và gỡ bỏ các gói javascript còn được gọi là mô-đun nút.

PyPi và npm là gì?

Một số khung này là Gói trình quản lý nút [npm] và Chỉ mục gói Python [PyPi], là thư viện gói mã nguồn mở [OS]. The public registries npm and PyPi use to host packages allow any user with a verified email to publish code.

Chủ Đề