- VisualStudio2022
- pprof-Hướng dẫn sử dụng nó trong bản mạng trực tiếp
- Triển khai C# các loại hộp chọn nhiều màu lựa chọn thả xuống, cây lựa chọn nhiều màu lựa chọn thả xuống và các nút tối đa
- [Ghi chú học tập] Cơ sở dữ liệu cấu trúc: cat tree
Có nhiều công cụ trong hệ sinh thái quản lý gói Python, chẳng hạn như pip, pip-tools, thơ, conda, v.v., mỗi công cụ có một số chức năng nhất định.
UV được giới thiệu hôm nay là một công cụ quản lý gói Python dựa trên Rust do Astral đưa ra, nhằm mục đích trở thành "Cargo of Python".
Nó cung cấp trải nghiệm quản lý gói nhanh chóng, đáng tin cậy và dễ sử dụng với hiệu suất, khả năng tương thích và chức năng tuyệt vời, mang đến các tùy chọn mới cho việc phát triển và quản lý các dự án Python.
So với các công cụ quản lý gói khác trong Python, uv có nhiều ưu điểm hơn:
rỉ sét
,tia cực tím
Tốc độ của công cụ này thật đáng kinh ngạc. Ví dụ: cài đặt các phần phụ thuộc nhanh hơn nhiều so với các công cụ khác.tia cực tím
Đúng"Dịch vụ một cửa"Các công cụ từ cài đặt Python, quản lý môi trường ảo đến cài đặt và quản lý các gói, đến quản lý các phần phụ thuộc của dự án, nó đều có thể xử lý rất tốt mọi thứTinh tú
Được hỗ trợ và thông quaMIT
Cấp phép nên ngay cả khi có vấn đề phát sinh trong tương lai, cộng đồng vẫn có cách giải quyếtSử dụng uv, bạn cũng có thể quản lý các phần phụ thuộc một cách thuận tiện như các dự án NodeJS hoặc Rust.
Việc cài đặt uv rất đơn giản. Bạn có thể sử dụng tập lệnh cài đặt chính thức hoặc cài đặt thông qua pip.
# Trên macOS và Linux -LsSf https://astral.sh/uv/install.sh | Trên Windows. powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # With pip install uv.
Sau khi cài đặt, bạn có thể kiểm tra xem quá trình cài đặt có thành công hay không qua trợ giúp uv thông tin:
Phần sau đây trình bày cách sử dụng uv để quản lý các dự án Python.
Trước khi sử dụng uv, việc tạo một dự án Python đối với tôi chỉ là tạo một thư mục.
Vui lòng sửa cho tôi bất kỳ thiếu sót hoặc sai sót nào!
Tiếp theo, hãy bắt đầu bằng cách tạo một dự án để trình bày một số chức năng tôi thường sử dụng khi sử dụng sử dụng tia cực tím.
Đầu tiên, hãy giới thiệu hai tệp được sử dụng chủ yếu bởi các công cụ uv:
pyproject.toml
: Python
Version và other informationuv.lock
: Ghi lại tất cả các phần phụ thuộc của dự án, bao gồm tất cả các phần phụ thuộc và nền tảng khác để đảm bảo tính nhất quán của quá trình cài đặt trong các môi trường khác nhau. tia cực tím
Quản lý tự động, không chỉnh sửa thủ côngTiếp theo, tạo một dự án và sử dụng lệnh uv init
Sau khi tạo dự án thông qua init, công cụ uv đã giúp chúng tôi tạo một số tệp mặc định theo cách chug. Trong số đó, hello.py chỉ là một đoạn mã để trình diễn. Sau đó, chúng tôi có thể xóa tệp mã hóa này và thay thế bằng mã thực tế của riêng mình theo nhu cầu thực tế của dự án. Có một số dự án thông tin trong pyproject.toml: Git. Sau khi tạo dự án, điều đầu tiên họ làm khi vào thư mục gốc của dự án là đồng bộ hóa các thành phần phụ thuộc của dự án MỘT. Sau khi đồng bộ hóa, phiên bản thích hợp của Python sẽ tự động được tìm thấy hoặc tải xuống môi trường ảo của dự án dự án sẽ được tạo và cài đặt, đồng thời một danh sách phụ thuộc sẽ được xây dựng và ghi lại. uv.lock và cuối cùng là đồng bộ hóa các phần phụ thuộc vào môi trường ảo. Dự án của chúng tôi là một dự án mới được tạo và không có sự phụ thuộc nào, vì nội dung trong tệp uv.lock tương thích đối đơn giản. Sau khi đồng bộ hóa uv được đồng bộ hóa, bạn có thể chạy dự án mã hóa. Vì chúng tôi sử dụng uv để quản lý dự án nên chúng tôi sẽ sử dụng lệnh uv để chạy mã thay vì sử dụng python xxx.py như trước. Chúng tôi có thể thử chạy mã được tạo tự động khi dự án được tạo. Quản lý các phần phụ thuộc là mục tiêu chính của công việc sử dụng các công cụ uv. npm và Cargo. Tôi đã cố gắng cài đặt phần phụ thuộc của gấu trúc (các gói mà gấu trúc phụ thuộc cũng được cài đặt tự động) động). Bây giờ hãy xem những thay đổi trong tệp uv.lock. Tôi đã xóa rất nhiều nội dung trong nhật ký vì nội dung tổng hợp có thể quá nhiều. từng gói và các gói không phụ thuộc. Chúng tôi không cần phải chỉnh sửa file uv.lock. Sau khi giới thiệu gấu trúc, hãy xem liệu nó có thể được sử dụng trong hello.py hay không. Bạn có thể sử dụng gói pandas đã cài đặt một cách bình thường. Bây giờ hãy thử xóa các phần phụ thuộc. Sau khi sử dụng lệnh uv Remove để xóa gói pandas, các gói khác mà pandas phụ thuộc cũng sẽ tự động bị xóa. Chúng ta thấy file uv.lock cũng được khôi phục về nội dung ban đầu. Hãy thử chạy lại hello.py và xem. Chắc chắn là nó không thể chạy được. Một chức năng thường được sử dụng khác là phân biệt sự phụ thuộc của môi trường phát triển và môi trường sản xuất. Chức năng này rất phổ biến trong NodeJS và Rust. Ví dụ: chúng tôi muốn cài đặt gấu trúc vào môi trường phát triển và cài đặt các yêu cầu vào môi trường sản xuất. Sau khi cài đặt, tệp uv.lock sẽ tự động thêm các gói khác nhau và các gói phụ thuộc của chúng, những gói này sẽ không được mô tả ở đây. Từ pyproject.toml của dự án, bạn có thể thấy các gói phụ thuộc của các môi trường khác nhau. uv cũng có thể xây dựng và xuất bản các gói Python lên PyPi. Các chi tiết cụ thể sẽ không được thảo luận trong bài viết này. Kể từ khi phát hành uv, nhóm đã cam kết ưu tiên khả năng tương thích, hiệu suất và độ ổn định trên nhiều nền tảng, đồng thời giúp người dùng chuyển đổi suôn sẻ các dự án sang sử dụng uv để quản lý. Về lâu dài, uv sẽ phát triển thành một trình quản lý gói và dự án Python hoàn chỉnh, cung cấp trải nghiệm phát triển toàn diện, bao gồm tất cả các khía cạnh từ cài đặt Python đến quản lý dự án, đơn giản hóa hơn nữa quy trình phát triển của các dự án Python và nâng cao hiệu quả phát triển. Cuối cùng, bài viết này về Không còn đau đầu trong quản lý gói Python: Bắt đầu nhanh chóng với các công cụ uv kết thúc tại đây. Nếu bạn muốn biết thêm về Không còn đau đầu trong quản lý gói Python: Bắt đầu nhanh chóng với các công cụ uv, vui lòng tìm kiếm bài viết CFSDN hoặc. tiếp tục duyệt các bài viết liên quan, tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .$ uv init myproject Dự án đã khởi tạo `myproject` tại `D:\projects\python\myproject` $ cd .\myproject\ $ ls Thư mục: D:\projects\python\myproject Mode LastWriteTime Tên dài --- - ---- --------- ------ ---- -Một---- 27/12/2024 12:06:08 109 .gitignore -a---- 2024/12/27 12:06:08 5 .python-version -a---- 2024/12/27 12:06:08 87 hello.py -a---- 27/12/2024 12:06: 08 155 pyproject.toml -a---- 27/12/2024 12:06:08 0 README.md
$ cat .\hello.py def main(): print("Xin chào từ dự án của tôi!") if __name__ == "__main__": main()
$ cat .\pyproject.toml [project] name = "myproject" version = "0.1.0" description = "Thêm mô tả của bạn vào đây" readme = "README.md" require-python = ">=3.12" dependency =[]
3.2. Môi trường hoạt động
$ uv sync Sử dụng trình dịch CPython 3.12.4 tại: D:\miniconda3\envs\databook\python.exe Gói trong 15ms được kiểm tra trong 0,05 mili giây
$ ls Thư mục: D:\projects\python\myproject Mode LastWriteTime Tên dài ---- ------------- tốc độ ------ ---- d---- -- 27/12/2024 12:12:39 .venv -a---- 2024/12/27 12:06:08 109 .gitignore -a---- 2024/12/27 12:06:08 5 .python-version -a---- 2024/12/27 12:06:08 87 hello.py -a---- 2024/12/27 12:06: 08 155 pyproject.toml -a--- - 27/12/2024 12:06:08 0 README.md -a---- 2024/12/27 12:12:39 116 uv.lock $ cat .\uv.lock version = 1 require-python = ">=3.12" [[gói]] name = " myproject" phiên bản = "0.1.0" nguồn = { ảo = "." }
$ uv run .\hello.py Xin chào từ dự án của tôi!
3.3. Quản lý thuộc tính
$ uv add pandas 7 gói trong 3,41 giây Chuẩn bị 6 giây trong 4,63 giây Đã cài đặt 6 giây trong 1,80 giây + numpy==2.2.1 + pandas==2.2.3 + python-dateutil==2.9.0.post0 + pytz= =2024.2 + sáu==1.17.0 + tzdata==2024.2
$ cat .\uv.lock version = 1 require-python = ">=3.12" [[package]] name = "myproject" version = "0.1.0" source = { virtual = "." } phụ thuộc = [ { name = "pandas" }, ] [package.metadata] require-dist = [{ name = "pandas", specifier = ">=2.2.3" }] [[gói]] name = Phiên bản "gấu trúc" = "2.2.3" nguồn = { đăng ký = "https://pypi.org/simple" } phụ thuộc = [ { name = "numpy" } , { name = "python-dateutil" }, { name = "pytz" }, { name = "tzdata" }, ] [[gói]] name = "pytz" phiên bản = "2024.2" source = { register = "https://pypi.org/simple" }
$ cat .\hello.py nhập gấu trúc dưới dạng pd def main(): print("Xin chào từ dự án của tôi!") df = pd.DataFrame( { "A": [1, 2, 3], "B": [4 , 5, 6], } ) print(df) if __name__ == "__main__": main() $ uv run .\hello.py Xin chào từ myproject! 4 1 2 5 2 3 6
$ uv loại bỏ gấu trúc Đã giải quyết 1 gói trong 12 mili giây Đã gỡ cài đặt 6 gói trong 1,18 giây - numpy==2.2.1 - pandas==2.2.3 - python-dateutil==2.9.0.post0 - pytz==2024.2 - six==1.17 .0 - tzdata==2024.2 $ cat .\uv.lock version = 1 require-python = ">=3.12" [[gói]] tên = "myproject" phiên bản = "0.1.0" nguồn = { ảo = "."
$ uv run .\hello.py Traceback (cuộc gọi gần đây nhất gần đây nhất): Tệp "D:\projects\python\myproject\hello.py", dòng 1, trong
3.4 Phân biệt môi trường phát triển và môi trường sản xuất
$ uv add --group dev pandas Đã giải quyết 7 gói trong 1,72 giây Đã cài đặt 6 gói trong 1,39 giây + numpy==2.2.1 + pandas==2.2.3 + python-dateutil==2.9.0.post0 + pytz==2024.2 + six==1.17.0 + tzdata==2024.2 $ uv add --group yêu cầu sản xuất Đã giải quyết 12 gói trong 2,72 giây Chuẩn bị 5 gói trong 1,31 giây Đã cài đặt 5 gói trong 68 mili giây + certifi==2024.12.14 + charset-normalizer==3.4.1 + idna==3.10 + request==2.32.3 + urllib3==2.3.0
$ cat .\pyproject.toml [project] name = "myproject" version = "0.1.0" description = "Thêm mô tả của bạn vào đây" readme = "README.md" require-python = ">=3.12" dependency = [] [nhóm phụ thuộc] dev = [ "pandas>=2.2.3", ] production = [ "requests>=2.32.3", ]
4. Sự phát triển trong tương lai
Thông qua thiết bị cuối cùng, bạn có thể sử dụng lệnh - "SetFile -a B filename" Theo trình cài đặt, tôi nghĩ rằng tôi nên createDirectoryAtPat thông qua [[Trình quản lý mặc định của NSFileManager]
Thực hành khai thác đồ thị bằng R Để khai thác đồ thị con: thư viện (khai) thác đồ thị con) thư viện (igraph) đồ thị1 =
Vấn đề tương tự trong mã: class Foo { int getIntProperty () { ... } CustomObject getObjectProperty () { ... }
Sử dụng React, tôi đã tạo hai thành công phần (Buttons.js và Message.js), mỗi thành phần có một bản xuất.
Kể từ sáng nay, tôi phát hiện ra rằng tôi không thể cài đặt bất kỳ gói NPM nào (hoặc bất kỳ gói nào có phụ thuộc) từ một phạm vi nữa. Ví dụ: nếu tôi nhập npm i webpack, tôi gặp lỗi sau... npm ERR code E401 npm!
Những gì tôi đang tạo một dự án Angular 2 mới khi tôi chạy.
Tình huống: Tôi có gói Swift, tên là lib. nằm trong kho lưu trữ riêng của nó. format.package(p
Tôi muốn tìm hiểu và sử dụng nodejs tại nơi làm việc nhưng tôi gặp sự cố khi cài đặt mô-đun/gói bằng lệnh de npm. công việc của tôi thì không?
To doing điều này, tôi cần tệp bld.bat cho Windows.
Tôi cần tệp thư viện dùng chung libthrift-0.9.3.so để làm phần phụ thuộc của các gói khác. gói tiết kiệm-0.9.3 (Tôi đã tải xuống tệp từ https://thrift.apache.org/down
Đang cài đặt gói vào 'C:/Users/Lenovo/Docum
Đang cài đặt gói vào 'C:/Users/Lenovo/Docum
Tôi đang cố gắng kiểm tra ứng dụng này ở trạng thái nhưng tôi không thể chạy ứng dụng vì tôi gặp phải lỗi này "Tên 'Trang' nằm trong thư viện 'gói:burn_off/widgets/page.dart' và 'gói'
Đang cố gắng hiểu và tìm hiểu cách viết các gói...kiểm tra những gì tôi đang sử dụng, ghi nhật ký...bạn có thể giúp Cảm ơn bạn! Tệp chính: #!/opt/local/bin/py
Google Cloud. enter sys input signal from google.cloud input, ngoại lệ #creat
Tôi tự hỏi liệu có ai tìm thấy gói R tốt để phân tích dữ liệu theo dõi mắt không? Tôi đã xem qua eyetrackR But theo như tôi known thì không có hỗ trợ tài liệu bằng tiếng Anh: http://read.psych.uni-potsdam.de/pm
Tôi đang tạo một gói trong R. Tôi có hai hàm chia sẻ một biến (toàn địa phương). m <- m+1 } g<-function() { m <- m
Tôi đã viết rất nhiều mô-đun cho Lua bằng C. Mỗi mô-đun chứa một loại dữ liệu người dùng Lua và tôi tải và sử dụng chúng như thế này: A = require("A") B = require("B") a = A.new(3,{
Phải nói rằng tôi không thể cài đặt cả gói.
Tôi muốn thực hiện một số phân tích về Monte Carlo bằng Haskell.
Tôi là một lập trình viên xuất sắc, rất xuất sắc!