3 Show
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Tôi đã sử dụng Python một thời gian nhưng tôi không thể nhớ cách tôi đã từng cài đặt các mô -đun, tôi không cần phải ở mãi mãi. Gần đây tôi đã cài đặt lại Ubuntu vì vậy bây giờ tôi cần. Đầu tiên, tôi cố gắng chạy setup.py và nhận được điều này:
Tôi đã thử sử dụng synap để cài đặt đẹp nhưng nó cũng không hoạt động và Python nói với tôi rằng không có mô -đun nào có tên. Một số diễn đàn nói rằng nó phải làm với thư mục làm việc sai vì vậy tôi đã vào thư mục Python26 của mình và cố gắng chạy Python ./setup.py cài đặt từ đó và nó vẫn không hoạt động. Tôi không chắc thỏa thuận là gì. Bất kỳ hướng dẫn? Hỏi ngày 23 tháng 8 năm 2012 lúc 0:19Aug 23, 2012 at 0:19
2
HOẶC
Sau đó, chỉ cần chạy:
e.g.
Đã trả lời ngày 23 tháng 8 năm 2012 lúc 0:36Aug 23, 2012 at 0:36
DaviddavidDavid 6.2872 Huy hiệu vàng24 Huy hiệu bạc21 Huy hiệu đồng2 gold badges24 silver badges21 bronze badges 9 nên làm điều đó cho bạn. Synaptic vẫn ổn, nhưng tôi thích năng khiếu vì nhiều lý do (CLI là một trong số đó rõ ràng). Hầu hết các mô -đun bạn muốn nên có sẵn thông qua trình quản lý gói của bạn và BeautifulSoup chắc chắn nên có. Nếu lệnh đó không hiệu quả với bạn, có những vấn đề khác mà bạn cần xem xét.Bạn chắc chắn sẽ có thể sử dụng Easy_Install cho các gói phổ biến hơn và tốt, và khi sử dụng 0, bạn cần phải có trong một thư mục thực sự chứa nó. 1 trở lại cho bạn khi bạn tham gia thư mục làm việc thích hợp là gì? 0 thường đi kèm với gói đã tải xuống, vì vậy hãy chắc chắn rằng bạn thực sự có trong thư mục chứa gói đó.Đã trả lời ngày 23 tháng 8 năm 2012 lúc 0:32Aug 23, 2012 at 0:32
Jaypbjaypbjaypb 1.50410 Huy hiệu bạc22 Huy hiệu đồng10 silver badges22 bronze badges 1 Xem các câu trả lời khác khuyên bạn nên sử dụng Trình quản lý gói đi kèm với Ubuntu (Aptitude). Đây là cách dễ nhất để làm điều đó. Tuy nhiên, để trả lời câu hỏi cụ thể của bạn, để cài đặt một gói dựa trên DisTutils bạn cần tải xuống gói, trích xuất nó và sau đó chạy tập lệnh setup.py. Ví dụ cho BeautifulSoup: Tải xuống gói từ Soup xinh đẹp 4.1.3 (tại thời điểm viết, hãy nhận được tarball tuyệt đẹp4-4.1.3.tar.gz).
Đã trả lời ngày 23 tháng 8 năm 2012 lúc 0:42Aug 23, 2012 at 0:42
Mhawkemhawkemhawke 81.9K9 Huy hiệu vàng113 Huy hiệu bạc135 Huy hiệu Đồng9 gold badges113 silver badges135 bronze badges Lệnh sudo sẽ không hoạt động trong Windows. Nếu bạn có thứ gì đó để cài đặt, không sử dụng sudo, thay vào đó, hãy cài đặt trực tiếp tệp của mình: Đối với Ex: Nếu bạn SUDO Python3 Setup.py Cài đặtsudo python3 setup.py install Sau đó, người dùng Windows chỉ có thể nhập cài đặt setup.pysetup.py install Đã trả lời ngày 17 tháng 6 năm 2017 lúc 18:51Jun 17, 2017 at 18:51
Bạn đang sử dụng Windows? Nếu vậy, hãy thay thế 3 bằng 4 và nhập phần còn lại của lệnh.Đã trả lời ngày 15 tháng 8 năm 2020 lúc 3:45Aug 15, 2020 at 3:45 Greg Ward Ghi chú Toàn bộ gói 5 đã được không dùng nữa và sẽ bị xóa trong Python 3.12. Tài liệu này chỉ được giữ lại làm tài liệu tham khảo và sẽ được xóa với gói. Xem những gì mà mục nhập mới để biết thêm thông tin.What’s New entry for more information.
Xem thêm Cài đặt các mô -đun PythonTài liệu cài đặt mô -đun cập nhật. Để sử dụng Python thường xuyên, bạn gần như chắc chắn muốn tài liệu đó hơn là cái này. Ghi chú Toàn bộ gói 5 đã được không dùng nữa và sẽ bị xóa trong Python 3.12. Tài liệu này chỉ được giữ lại làm tài liệu tham khảo và sẽ được xóa với gói. Xem những gì mà mục nhập mới để biết thêm thông tin.Xem thêmCài đặt các mô -đun Python Tài liệu cài đặt mô -đun cập nhật. Để sử dụng Python thường xuyên, bạn gần như chắc chắn muốn tài liệu đó hơn là cái này. Hướng dẫn này chỉ bao gồm các công cụ cơ bản để xây dựng và phân phối các tiện ích mở rộng được cung cấp như một phần của phiên bản Python này. Các công cụ của bên thứ ba cung cấp dễ dàng hơn để sử dụng và các lựa chọn thay thế an toàn hơn. Tham khảo phần Khuyến nghị nhanh trong Hướng dẫn sử dụng bao bì Python để biết thêm thông tin.Installing Python Modules and Distributing Python Modules for more details. Giới thiệu¶ Trong Python 2.0, API sudo easy_install BeautifulSoup 5 lần đầu tiên được thêm vào thư viện tiêu chuẩn. Điều này đã cung cấp cho người bảo trì Linux một cách tiêu chuẩn để chuyển đổi các dự án Python thành các gói phân phối Linux và quản trị viên hệ thống một cách tiêu chuẩn để cài đặt chúng trực tiếp lên các hệ thống đích.Trong nhiều năm kể từ khi Python 2.0 được phát hành, việc kết hợp chặt chẽ hệ thống xây dựng và trình cài đặt gói với chu kỳ phát hành thời gian chạy ngôn ngữ đã trở nên có vấn đề và hiện tại nên sử dụng trình cài đặt gói 7 và hệ thống xây dựng 8, thay vào đó hơn là sử dụng 5 trực tiếp.Xem Cài đặt các mô -đun Python và phân phối các mô -đun Python để biết thêm chi tiết. Tài liệu di sản này chỉ được giữ lại cho đến khi chúng tôi tự tin rằng tài liệu 8 bao gồm mọi thứ cần thiết.Phân phối nguồn dựa trên DistutilsNếu bạn tải xuống một phân phối nguồn mô -đun, bạn có thể nói khá nhanh nếu nó được đóng gói và phân phối theo cách tiêu chuẩn, tức là sử dụng Distutils. Đầu tiên, tên phân phối và số phiên bản sẽ được giới thiệu nổi bật dưới tên của kho lưu trữ đã tải xuống, ví dụ: 1 hoặc 2. Tiếp theo, kho lưu trữ sẽ giải nén thành một thư mục có tên tương tự: 3 hoặc 4. Ngoài ra, phân phối sẽ chứa tập lệnh thiết lập 5 và một tệp có tên 6 hoặc có thể chỉ 7, điều này sẽ giải thích rằng việc xây dựng và cài đặt phân phối mô -đun là một vấn đề đơn giản là chạy một lệnh từ thiết bị đầu cuối:Distutils based source distributions, building and installing a module distribution using the Distutils is usually one simple command to run from a terminal:Đối với Windows, lệnh này sẽ được chạy từ cửa sổ nhắc lệnh ():Nếu tất cả những điều này là đúng, thì bạn đã biết cách xây dựng và cài đặt các mô -đun mà bạn vừa tải xuống: chạy lệnh ở trên. Trừ khi bạn cần cài đặt mọi thứ theo cách không chuẩn hoặc tùy chỉnh quy trình xây dựng, bạn không thực sự cần hướng dẫn này. Hay đúng hơn, lệnh trên là tất cả mọi thứ bạn cần để thoát khỏi hướng dẫn này. gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install Xây dựng và cài đặt tiêu chuẩnunzip or pkunzip) to unpack the archive. Then, open a command prompt window and run: cd c:\Temp\foo-1.0 python setup.py install Như được mô tả trong phần Phân phối nguồn dựa trên DisTUTILS, xây dựng và cài đặt phân phối mô -đun bằng cách sử dụng DisTUtils thường là một lệnh đơn giản để chạy từ thiết bị đầu cuối:Biến thể nền tảng Bạn phải luôn luôn chạy lệnh thiết lập từ thư mục gốc phân phối, tức là thư mục con cấp cao nhất mà phân phối nguồn mô-đun giải nén vào. Ví dụ: nếu bạn vừa tải xuống phân phối nguồn mô -đun 1 vào hệ thống Unix, thì điều bình thường cần làm là:python setup.py build python setup.py install Trên Windows, bạn có thể tải xuống 9. Nếu bạn đã tải tệp lưu trữ xuống gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install0, thì nó sẽ giải nén vào gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install1; Bạn có thể sử dụng Trình điều khiển lưu trữ với giao diện người dùng đồ họa (như Winzip) hoặc công cụ dòng lệnh (như Unzip hoặc Pkunzip) để giải nén kho lưu trữ. Sau đó, mở cửa sổ nhắc lệnh và chạy:install command first runs the build command, which—in this case—quickly notices that it has nothing to do, since everything in the gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install3 directory is up-to-date. Bạn có thể không cần khả năng này để phá vỡ mọi thứ thường xuyên nếu tất cả những gì bạn làm là cài đặt các mô -đun được tải xuống ngoài mạng, nhưng nó rất tiện dụng cho các nhiệm vụ nâng cao hơn. Nếu bạn nhận được phân phối các mô -đun và tiện ích mở rộng Python của riêng mình, bạn sẽ tự mình chạy rất nhiều lệnh distututils riêng lẻ. Cách xây dựng hoạt động lorTheo ngụ ý ở trên, lệnh build có trách nhiệm đặt các tệp để cài đặt vào thư mục xây dựng. Theo mặc định, đây là gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install3 dưới gốc phân phối; Nếu bạn quá quan tâm đến tốc độ hoặc muốn giữ nguyên nguyên nguồn, bạn có thể thay đổi thư mục xây dựng với tùy chọn gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install5. Ví dụ:build command is responsible for putting the files to install into a build directory. By default, this is gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install3 under the distribution root; if you’re excessively concerned with speed, or want to keep the source tree pristine, you can change the build directory with the gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install5 option. For example: python setup.py build --build-base=/path/to/pybuild/foo-1.0 .Distutils Configuration Files.) Normally, this isn’t necessary. Bố cục mặc định cho cây xây dựng như sau: 0trong đó gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install6 mở rộng sang một mô tả ngắn gọn về nền tảng HĐH/Phần cứng hiện tại và phiên bản Python. Mẫu đầu tiên, chỉ với một thư mục gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install7, được sử dụng cho các bản phân phối mô -đun thuần túy của Hồi giáo, đó là các phân phối mô -đun chỉ bao gồm các mô -đun python thuần túy. Nếu một phân phối mô -đun chứa bất kỳ phần mở rộng nào (các mô -đun được viết bằng C/C ++), thì biểu mẫu thứ hai, với hai thư mục gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install6, được sử dụng. Trong trường hợp đó, thư mục gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install9 giữ các tệp tạm thời được tạo bởi quy trình biên dịch/liên kết mà không thực sự được cài đặt. Trong cả hai trường hợp, thư mục gunzip -c foo-1.0.tar.gz | tar xf - # unpacks into directory foo-1.0 cd foo-1.0 python setup.py install7 (hoặc cd c:\Temp\foo-1.0 python setup.py install1) chứa tất cả các mô -đun Python (Python và phần mở rộng thuần túy) sẽ được cài đặt. Trong tương lai, nhiều thư mục sẽ được thêm vào để xử lý các tập lệnh Python, tài liệu, thực thi nhị phân và bất cứ điều gì khác là cần thiết để xử lý công việc cài đặt các mô -đun và ứng dụng Python. Cách cài đặt hoạt động lorSau khi lệnh build chạy (cho dù bạn chạy nó một cách rõ ràng hay lệnh cài đặt thực hiện nó cho bạn), công việc của lệnh cài đặt tương đối đơn giản: tất cả những gì nó phải làm là sao chép mọi thứ theo cd c:\Temp\foo-1.0 python setup.py install2 (hoặc cd c:\Temp\foo-1.0 python setup.py install3) để cài đặt đã chọn của bạn danh mục.build command runs (whether you run it explicitly, or the install command does it for you), the work of the install command is relatively simple: all it has to do is copy everything under cd c:\Temp\foo-1.0 python setup.py install2 (or cd c:\Temp\foo-1.0 python setup.py install3) to your chosen installation directory. Nếu bạn không chọn một thư mục cài đặt, tức là, nếu bạn chỉ chạy ____ 74, thì lệnh cài đặt cài đặt vào vị trí tiêu chuẩn cho các mô-đun Python của bên thứ ba. Vị trí này thay đổi theo nền tảng và cách bạn xây dựng/cài đặt chính Python. Trên Unix (và MacOS, cũng dựa trên UNIX), nó cũng phụ thuộc vào việc phân phối mô-đun được cài đặt có phải là Python tinh khiết hay chứa các tiện ích mở rộng (không phải là PURE hay không):install command installs to the standard location for third-party Python modules. This location varies by platform and by how you built/installed Python itself. On Unix (and macOS, which is also Unix-based), it also depends on whether the module distribution being installed is pure Python or contains extensions (“non-pure”):
Notes:
python setup.py build python setup.py install1 và python setup.py build python setup.py install2 là viết tắt của các thư mục mà Python được cài đặt và nơi nó tìm thấy các thư viện của nó vào thời gian chạy. Chúng luôn giống nhau trong các cửa sổ, và rất thường giống nhau dưới Unix và MacOS. Bạn có thể tìm hiểu những gì cài đặt Python của bạn sử dụng cho python setup.py build python setup.py install1 và python setup.py build python setup.py install2 bằng cách chạy Python ở chế độ tương tác và gõ một vài lệnh đơn giản. Trong Unix, chỉ cần nhập python setup.py build --build-base=/path/to/pybuild/foo-1.02 tại dấu nhắc Shell. Trong Windows, chọn. Khi trình thông dịch được bắt đầu, bạn nhập mã python tại dấu nhắc. Ví dụ: trên hệ thống Linux của tôi, tôi nhập ba câu lệnh Python được hiển thị bên dưới và nhận đầu ra như được hiển thị, để tìm hiểu python setup.py build python setup.py install1 và python setup.py build python setup.py install2 của tôi: 1Một vài người giữ chỗ khác được sử dụng trong tài liệu này: python setup.py build --build-base=/path/to/pybuild/foo-1.05 là viết tắt của phiên bản Python, ví dụ python setup.py build --build-base=/path/to/pybuild/foo-1.06; python setup.py build --build-base=/path/to/pybuild/foo-1.07 sẽ được thay thế bằng giá trị của python setup.py build --build-base=/path/to/pybuild/foo-1.08 hoặc chuỗi trống cho các nền tảng mà không xác định cờ ABI; python setup.py build --build-base=/path/to/pybuild/foo-1.09 sẽ được thay thế bằng tên của phân phối mô -đun được cài đặt. Chấm và viết hoa là quan trọng trong các con đường; Ví dụ: giá trị sử dụng 00 trên Unix thường sẽ sử dụng 01 trên Windows.Nếu bạn không muốn cài đặt các mô -đun vào vị trí tiêu chuẩn hoặc nếu bạn không có quyền viết ở đó, thì bạn cần đọc về các cài đặt thay thế trong phần cài đặt thay thế. Nếu bạn muốn tùy chỉnh các thư mục cài đặt của mình nhiều hơn, hãy xem phần Cài đặt tùy chỉnh trên cài đặt tùy chỉnh.Alternate Installation. If you want to customize your installation directories more heavily, see section Custom Installation on custom installations. Cài đặt thay thếThông thường, cần thiết hoặc mong muốn cài đặt các mô-đun vào một vị trí khác với vị trí tiêu chuẩn cho các mô-đun Python của bên thứ ba. Ví dụ: trên một hệ thống UNIX, bạn có thể không được phép ghi vào thư mục mô-đun của bên thứ ba tiêu chuẩn. Hoặc bạn có thể muốn thử một mô -đun trước khi biến nó thành một phần tiêu chuẩn của cài đặt Python cục bộ của bạn. Điều này đặc biệt đúng khi nâng cấp phân phối đã có: bạn muốn đảm bảo cơ sở các tập lệnh hiện tại của bạn vẫn hoạt động với phiên bản mới trước khi thực sự nâng cấp. Lệnh cài đặt Distutils được thiết kế để tạo các phân phối mô -đun cài đặt cho một vị trí thay thế đơn giản và không đau. Ý tưởng cơ bản là bạn cung cấp một thư mục cơ sở để cài đặt và lệnh Cài đặt chọn một bộ thư mục (được gọi là sơ đồ cài đặt) trong thư mục cơ sở này để cài đặt tệp. Các chi tiết khác nhau giữa các nền tảng, vì vậy hãy đọc bất kỳ phần nào sau đây áp dụng cho bạn.install command is designed to make installing module distributions to an alternate location simple and painless. The basic idea is that you supply a base directory for the installation, and the install command picks a set of directories (called an installation scheme) under this base directory in which to install files. The details differ across platforms, so read whichever of the following sections applies to you. Lưu ý rằng các sơ đồ cài đặt thay thế khác nhau là loại trừ lẫn nhau: bạn có thể vượt qua 02 hoặc 03 hoặc 04 và 05 hoặc 06 và 07, nhưng bạn có thể trộn lẫn từ các nhóm này.Cài đặt thay thế: Sơ đồ người dùngSơ đồ này được thiết kế để trở thành giải pháp thuận tiện nhất cho người dùng không có quyền viết cho thư mục gói trang web toàn cầu hoặc không muốn cài đặt vào đó. Nó được kích hoạt với một tùy chọn đơn giản: 2Các tệp sẽ được cài đặt vào các thư mục con của 08 (được viết là 09 sau đây). Sơ đồ này cài đặt các mô -đun Python thuần túy và các mô -đun mở rộng ở cùng một vị trí (còn được gọi là 10). Dưới đây là các giá trị cho Unix, bao gồm cả macOS:
Và đây là các giá trị được sử dụng trên Windows:
Và đây là các giá trị được sử dụng trên Windows: Ưu điểm của việc sử dụng sơ đồ này so với các kế hoạch khác được mô tả dưới đây là thư mục gói trang web người dùng nằm trong các điều kiện bình thường luôn luôn được bao gồm trong 19 (xem 20 để biết thêm thông tin), có nghĩa là không có bước bổ sung để thực hiện 5 tập lệnh để hoàn thiện cài đặt.build_ext command also has a 02 option to add 23 to the compiler search path for header files and 24 to the compiler search path for libraries as well as to the runtime search path for shared C libraries (rpath).Lệnh build_ext cũng có tùy chọn sudo apt-get install python-setuptools 02 để thêm sudo apt-get install python-setuptools 23 vào đường dẫn tìm kiếm trình biên dịch cho các tệp tiêu đề và sudo apt-get install python-setuptools 24 vào đường dẫn tìm kiếm trình biên dịch cho các thư viện cũng như đường dẫn tìm kiếm thời gian chạy cho thư viện C được chia sẻ (RPATH).Cài đặt thay thế: Chương trình gia đình Ý tưởng đằng sau chương trình nhà của người Viking là bạn xây dựng và duy trì một bản mô -đun Python cá nhân. Kế hoạch này tên có nguồn gốc từ ý tưởng về một thư mục gia đình trên mạng trên UNIX, vì nó không phải là bất thường đối với người dùng Unix để làm cho thư mục nhà của họ có bố cục tương tự như 25 hoặc 26. Sơ đồ này có thể được sử dụng bởi bất kỳ ai, bất kể hệ điều hành mà họ đang cài đặt. 3Cài đặt phân phối mô -đun mới đơn giản nhưinstall command will expand this to your home directory: 4Nơi bạn có thể cung cấp bất kỳ thư mục nào bạn thích cho tùy chọn 03. Trên Unix, những người đánh máy lười biếng chỉ có thể gõ một tilde ( 28); Lệnh cài đặt sẽ mở rộng điều này sang thư mục nhà của bạn:modify Python’s search path or edit 29 (see 20) to call 31 or edit
19.Để thực hiện Python, hãy tìm các bản phân phối được cài đặt với sơ đồ này, bạn có thể phải sửa đổi đường dẫn tìm kiếm Python hoặc chỉnh sửa 29 (xem 20) để gọi 31 hoặc chỉnh sửa 19.
Và đây là các giá trị được sử dụng trên Windows: Ưu điểm của việc sử dụng sơ đồ này so với các kế hoạch khác được mô tả dưới đây là thư mục gói trang web người dùng nằm trong các điều kiện bình thường luôn luôn được bao gồm trong sudo apt-get install python-setuptools 19 (xem sudo apt-get install python-setuptools 20 để biết thêm thông tin), có nghĩa là không có bước bổ sung để thực hiện wget http://www.crummy.com/software/BeautifulSoup/bs4/download/beautifulsoup4-4.1.3.tar.gz tar xvfz beautifulsoup4-4.1.3.tar.gz cd beautifulsoup4-4.1.3 sudo python setup.py install 5 tập lệnh để hoàn thiện cài đặt.Lệnh build_ext cũng có tùy chọn 02 để thêm 23 vào đường dẫn tìm kiếm trình biên dịch cho các tệp tiêu đề và 24 vào đường dẫn tìm kiếm trình biên dịch cho các thư viện cũng như đường dẫn tìm kiếm thời gian chạy cho thư viện C được chia sẻ (RPATH).Cài đặt thay thế: Chương trình gia đình 5Ý tưởng đằng sau chương trình nhà của người Viking là bạn xây dựng và duy trì một bản mô -đun Python cá nhân. Kế hoạch này tên có nguồn gốc từ ý tưởng về một thư mục gia đình trên mạng trên UNIX, vì nó không phải là bất thường đối với người dùng Unix để làm cho thư mục nhà của họ có bố cục tương tự như 25 hoặc 26. Sơ đồ này có thể được sử dụng bởi bất kỳ ai, bất kể hệ điều hành mà họ đang cài đặt. 6Cài đặt phân phối mô -đun mới đơn giản như
Không có yêu cầu rằng 04 hoặc 05 thực sự chỉ ra một cài đặt Python thay thế; Nếu các thư mục được liệt kê ở trên chưa tồn tại, chúng được tạo vào thời điểm cài đặt.Ngẫu nhiên, lý do thực sự của sơ đồ tiền tố rất quan trọng chỉ đơn giản là việc cài đặt UNIX tiêu chuẩn sử dụng sơ đồ tiền tố, nhưng với 04 và 05 được cung cấp bởi chính Python là 58 và 59. Do đó, bạn có thể nghĩ rằng bạn sẽ không bao giờ sử dụng sơ đồ tiền tố, nhưng mỗi khi bạn chạy 60 mà không có bất kỳ tùy chọn nào khác, bạn sẽ sử dụng nó.Lưu ý rằng việc cài đặt các tiện ích mở rộng vào cài đặt Python thay thế không ảnh hưởng đến cách các tiện ích mở rộng đó được xây dựng: đặc biệt, các tệp tiêu đề Python ( 61 và bạn bè) được cài đặt với trình thông dịch Python được sử dụng để chạy tập lệnh thiết lập sẽ được sử dụng để biên dịch các phần mở rộng. Bạn có trách nhiệm đảm bảo rằng trình thông dịch được sử dụng để chạy các tiện ích mở rộng được cài đặt theo cách này là tương thích với trình thông dịch được sử dụng để xây dựng chúng. Cách tốt nhất để làm điều này là đảm bảo rằng hai phiên dịch là cùng một phiên bản Python (có thể là các bản dựng khác nhau hoặc có thể các bản sao của cùng một bản dựng). .Cài đặt thay thế: Windows (sơ đồ tiền tố) ¶Windows không có khái niệm về thư mục nhà của người dùng và vì việc cài đặt Python tiêu chuẩn trong Windows đơn giản hơn so với Unix, tùy chọn 04 theo truyền thống đã được sử dụng để cài đặt các gói bổ sung ở các vị trí riêng biệt trên Windows. 7Để cài đặt các mô -đun vào thư mục 65 trên ổ đĩa hiện tại.Cơ sở cài đặt được xác định bởi tùy chọn 04; Tùy chọn 05 không được hỗ trợ trong Windows, điều đó có nghĩa là các mô -đun Python thuần túy và các mô -đun mở rộng được cài đặt vào cùng một vị trí. Các tệp được cài đặt như sau:
Không có yêu cầu rằng sudo apt-get install python-setuptools 04 hoặc sudo apt-get install python-setuptools 05 thực sự chỉ ra một cài đặt Python thay thế; Nếu các thư mục được liệt kê ở trên chưa tồn tại, chúng được tạo vào thời điểm cài đặt.Ngẫu nhiên, lý do thực sự của sơ đồ tiền tố rất quan trọng chỉ đơn giản là việc cài đặt UNIX tiêu chuẩn sử dụng sơ đồ tiền tố, nhưng với 04 và 05 được cung cấp bởi chính Python là 58 và 59. Do đó, bạn có thể nghĩ rằng bạn sẽ không bao giờ sử dụng sơ đồ tiền tố, nhưng mỗi khi bạn chạy 60 mà không có bất kỳ tùy chọn nào khác, bạn sẽ sử dụng nó.Alternate Installation just don’t do what you want. You might want
to tweak just one or two directories while keeping everything under the same base directory, or you might want to completely redefine the installation scheme. In either case, you’re creating a custom installation scheme.Lưu ý rằng việc cài đặt các tiện ích mở rộng vào cài đặt Python thay thế không ảnh hưởng đến cách các tiện ích mở rộng đó được xây dựng: đặc biệt, các tệp tiêu đề Python ( 61 và bạn bè) được cài đặt với trình thông dịch Python được sử dụng để chạy tập lệnh thiết lập sẽ được sử dụng để biên dịch các phần mở rộng. Bạn có trách nhiệm đảm bảo rằng trình thông dịch được sử dụng để chạy các tiện ích mở rộng được cài đặt theo cách này là tương thích với trình thông dịch được sử dụng để xây dựng chúng. Cách tốt nhất để làm điều này là đảm bảo rằng hai phiên dịch là cùng một phiên bản Python (có thể là các bản dựng khác nhau hoặc có thể các bản sao của cùng một bản dựng). .
Không có yêu cầu rằng 04 hoặc 05 thực sự chỉ ra một cài đặt Python thay thế; Nếu các thư mục được liệt kê ở trên chưa tồn tại, chúng được tạo vào thời điểm cài đặt.Ngẫu nhiên, lý do thực sự của sơ đồ tiền tố rất quan trọng chỉ đơn giản là việc cài đặt UNIX tiêu chuẩn sử dụng sơ đồ tiền tố, nhưng với 04 và 05 được cung cấp bởi chính Python là 58 và 59. Do đó, bạn có thể nghĩ rằng bạn sẽ không bao giờ sử dụng sơ đồ tiền tố, nhưng mỗi khi bạn chạy 60 mà không có bất kỳ tùy chọn nào khác, bạn sẽ sử dụng nó. 8Lưu ý rằng việc cài đặt các tiện ích mở rộng vào cài đặt Python thay thế không ảnh hưởng đến cách các tiện ích mở rộng đó được xây dựng: đặc biệt, các tệp tiêu đề Python ( 61 và bạn bè) được cài đặt với trình thông dịch Python được sử dụng để chạy tập lệnh thiết lập sẽ được sử dụng để biên dịch các phần mở rộng. Bạn có trách nhiệm đảm bảo rằng trình thông dịch được sử dụng để chạy các tiện ích mở rộng được cài đặt theo cách này là tương thích với trình thông dịch được sử dụng để xây dựng chúng. Cách tốt nhất để làm điều này là đảm bảo rằng hai phiên dịch là cùng một phiên bản Python (có thể là các bản dựng khác nhau hoặc có thể các bản sao của cùng một bản dựng). . 9Cài đặt thay thế: Windows (sơ đồ tiền tố) ¶ Windows không có khái niệm về thư mục nhà của người dùng và vì việc cài đặt Python tiêu chuẩn trong Windows đơn giản hơn so với Unix, tùy chọn 04 theo truyền thống đã được sử dụng để cài đặt các gói bổ sung ở các vị trí riêng biệt trên Windows. 0Thư mục cài đặt được chỉ định là liên quan đến python setup.py build python setup.py install1. Tất nhiên, bạn cũng phải đảm bảo rằng thư mục này nằm trong đường dẫn tìm kiếm mô -đun Python, chẳng hạn như bằng cách đặt tệp 94 trong thư mục trang web (xem 20). Xem phần Sửa đổi đường dẫn tìm kiếm Python sườn để tìm hiểu cách sửa đổi đường dẫn tìm kiếm Python.Modifying Python’s Search Path to find out how to modify Python’s search path.Nếu bạn muốn xác định toàn bộ sơ đồ cài đặt, bạn chỉ cần cung cấp tất cả các tùy chọn thư mục cài đặt. Cách khuyến nghị để làm điều này là cung cấp các đường dẫn tương đối; Ví dụ: nếu bạn muốn duy trì tất cả các tệp liên quan đến mô-đun Python trong python setup.py build --build-base=/path/to/pybuild/foo-1.02 trong thư mục nhà của bạn và bạn muốn có một thư mục riêng cho mỗi nền tảng mà bạn sử dụng thư mục nhà của mình, bạn có thể xác định sơ đồ cài đặt sau: 1hoặc, tương đương, 2 97 không phải là (nhất thiết) một biến môi trường.Rõ ràng, việc chỉ định toàn bộ sơ đồ cài đặt mỗi khi bạn cài đặt phân phối mô -đun mới sẽ rất tẻ nhạt. Do đó, bạn có thể đặt các tùy chọn này vào tệp cấu hình Distutils của mình (xem phần Tệp cấu hình DisTUtils):Distutils Configuration Files): 3hoặc, tương đương, 4 97 không phải là (nhất thiết) một biến môi trường. 5Rõ ràng, việc chỉ định toàn bộ sơ đồ cài đặt mỗi khi bạn cài đặt phân phối mô -đun mới sẽ rất tẻ nhạt. Do đó, bạn có thể đặt các tùy chọn này vào tệp cấu hình Distutils của mình (xem phần Tệp cấu hình DisTUtils): Lưu ý rằng hai cái này không tương đương nếu bạn cung cấp một thư mục cơ sở cài đặt khác khi bạn chạy tập lệnh thiết lập. Ví dụ,Distutils Configuration Files for details. sẽ cài đặt các mô -đun thuần túy lên 98 trong trường hợp đầu tiên và đến 99 trong trường hợp thứ hai. (Đối với trường hợp thứ hai, bạn có thể muốn cung cấp một cơ sở cài đặt là 00.)Bạn có thể nhận thấy việc sử dụng 01 và 97 trong đầu vào tệp cấu hình mẫu. Đây là các biến cấu hình Distutils, có sự tương đồng mạnh mẽ với các biến môi trường. Trên thực tế, bạn có thể sử dụng các biến môi trường trong các tệp cấu hình trên các nền tảng có khái niệm như vậy nhưng các biến số cũng xác định thêm một vài biến có thể không có trong môi trường của bạn, chẳng hạn như 97. .virtual environment is activated, any options that change the installation path will be ignored from all distutils configuration files to prevent inadvertently installing projects outside of the virtual environment.Ghi chúKhi một môi trường ảo được kích hoạt, mọi tùy chọn thay đổi đường dẫn cài đặt sẽ bị bỏ qua từ tất cả các tệp cấu hình Distutils để ngăn chặn cài đặt các dự án bên ngoài môi trường ảo. 6Sửa đổi đường dẫn tìm kiếm Python từ Khi trình thông dịch Python thực thi câu lệnh 04, nó sẽ tìm kiếm cả mã Python và các mô -đun mở rộng dọc theo đường dẫn tìm kiếm. Một giá trị mặc định cho đường dẫn được cấu hình vào nhị phân Python khi trình thông dịch được xây dựng. Bạn có thể xác định đường dẫn bằng cách nhập mô -đun 05 và in giá trị của 19.Chuỗi null trong 19 đại diện cho thư mục làm việc hiện tại.Công ước dự kiến cho các gói được cài đặt cục bộ là đưa chúng vào thư mục 08, nhưng bạn có thể muốn cài đặt các mô -đun Python vào một số thư mục tùy ý. Ví dụ: trang web của bạn có thể có quy ước giữ tất cả các phần mềm liên quan đến máy chủ web theo 09. Các mô-đun Python bổ sung sau đó có thể thuộc về 10 và để nhập chúng, thư mục này phải được thêm vào 19. Có một số cách khác nhau để thêm thư mục.Cách thuận tiện nhất là thêm một tệp cấu hình đường dẫn vào một thư mục mà trên đường dẫn Python, thường là vào thư mục 12. Các tệp cấu hình đường dẫn có phần mở rộng 94 và mỗi dòng phải chứa một đường dẫn duy nhất được nối với 19. . 7Các đường dẫn có thể là tuyệt đối hoặc tương đối, trong trường hợp đó chúng liên quan đến thư mục chứa tệp 94. Xem tài liệu của mô -đun 20 để biết thêm thông tin.Có hai biến môi trường có thể sửa đổi 19. 25 đặt giá trị thay thế cho tiền tố của cài đặt Python. Ví dụ: nếu 25 được đặt thành 10, đường dẫn tìm kiếm sẽ được đặt thành 28. 25 sets an alternate value for the prefix of the Python installation. For example, if 25 is set to 10, the search path will be set to 28.Biến 29 có thể được đặt thành danh sách các đường dẫn sẽ được thêm vào đầu 19. Ví dụ: nếu 29 được đặt thành 32, đường dẫn tìm kiếm sẽ bắt đầu bằng 33. (Lưu ý rằng các thư mục phải tồn tại để được thêm vào 19; Mô -đun 20 loại bỏ các đường dẫn không tồn tại.) 29 variable can be set to a list of paths that will be added to the beginning of 19. For example, if 29 is set to 32, the search path will begin with 33. (Note that directories must exist in order to be added to 19; the
20 module removes paths that don’t exist.)Cuối cùng, 19 chỉ là một danh sách Python thông thường, vì vậy bất kỳ ứng dụng Python nào cũng có thể sửa đổi nó bằng cách thêm hoặc xóa các mục.Các tệp cấu hình DistutilsNhư đã đề cập ở trên, bạn có thể sử dụng các tệp cấu hình Distutils để ghi lại tùy chọn cá nhân hoặc trang web cho bất kỳ tùy chọn Distutils nào. Đó là, bất kỳ tùy chọn nào cho bất kỳ lệnh nào cũng có thể được lưu trữ trong một trong hai hoặc ba (tùy thuộc vào nền tảng của bạn) các tệp cấu hình, sẽ được tư vấn trước khi dòng lệnh được phân tích cú pháp. Điều này có nghĩa là các tệp cấu hình sẽ ghi đè các giá trị mặc định và dòng lệnh sẽ lần lượt ghi đè các tệp cấu hình. Hơn nữa, nếu áp dụng nhiều tệp cấu hình, các giá trị từ các tệp trước đó đã bị ghi đè bởi các tệp sau này. Vị trí và tên của các tệp cấu hìnhTên và vị trí của các tệp cấu hình thay đổi một chút trên các nền tảng. Trên Unix và MacOS, ba tệp cấu hình (theo thứ tự chúng được xử lý) là:
Và trên Windows, các tệp cấu hình là:
Và trên Windows, các tệp cấu hình là: Notes:
Trên Windows, nếu biến môi trường sudo aptitude install python-setuptools 45 không được xác định, sudo aptitude install python-setuptools 54 thì sudo aptitude install python-setuptools 55 và sudo aptitude install python-setuptools 56 sẽ được thử. Điều này được thực hiện bởi chức năng sudo aptitude install python-setuptools 48 được sử dụng bởi distutils.Cú pháp của các tệp cấu hình Các tệp cấu hình Distutils đều có cùng cú pháp. Các tệp cấu hình được nhóm thành các phần. Có một phần cho mỗi lệnh distutils, cộng với phần 58 cho các tùy chọn toàn cầu ảnh hưởng đến mọi lệnh. Mỗi phần bao gồm một tùy chọn trên mỗi dòng, được chỉ định là 59.Ví dụ: sau đây là một tệp cấu hình hoàn chỉnh chỉ buộc tất cả các lệnh phải chạy lặng lẽ theo mặc định: Nếu điều này được cài đặt dưới dạng tệp cấu hình hệ thống, nó sẽ ảnh hưởng đến tất cả việc xử lý bất kỳ phân phối mô -đun Python nào của bất kỳ người dùng nào trên hệ thống hiện tại. Nếu nó được cài đặt dưới dạng tệp cấu hình cá nhân của bạn (trên các hệ thống hỗ trợ chúng), nó sẽ chỉ ảnh hưởng đến phân phối mô -đun do bạn xử lý. Và nếu nó được sử dụng làm 39 cho một phân phối mô -đun cụ thể, nó chỉ ảnh hưởng đến phân phối đó.build* commands always forcibly rebuild all files with the following: 8Bạn có thể ghi đè thư mục mặc định của Build Build Base và thực hiện các lệnh Build* luôn buộc phải xây dựng lại tất cả các tệp sau: 9tương ứng với các đối số dòng lệnhbuild command on the command-line means that command will be run. Including a particular command in config files has no such implication; it only means that if the command is run, the options in the config file will apply. (Or if other commands that derive values from it are run, they will use the values in the config file.) Ngoại trừ bao gồm cả lệnh xây dựng trên dòng lệnh có nghĩa là lệnh đó sẽ được chạy. Bao gồm một lệnh cụ thể trong các tệp cấu hình không có hàm ý như vậy; Điều đó chỉ có nghĩa là nếu lệnh được chạy, các tùy chọn trong tệp cấu hình sẽ được áp dụng. (Hoặc nếu các lệnh khác lấy giá trị từ nó được chạy, chúng sẽ sử dụng các giá trị trong tệp cấu hình.) 0Và bạn có thể tìm ra danh sách đầy đủ các tùy chọn toàn cầu bằng cách sử dụng 61 mà không cần lệnh:Xem thêm phần Tài liệu tham khảo của người Viking trong hướng dẫn sử dụng các mô -đun Python phân phối của Python. Xây dựng phần mở rộng: Mẹo và Thủ thuậtBất cứ khi nào có thể, các distutils cố gắng sử dụng thông tin cấu hình được cung cấp bởi trình thông dịch Python được sử dụng để chạy tập lệnh 5. Ví dụ, cùng một trình biên dịch và cờ liên kết được sử dụng để biên dịch Python cũng sẽ được sử dụng để biên dịch các tiện ích mở rộng. Thông thường điều này sẽ hoạt động tốt, nhưng trong các tình huống phức tạp, điều này có thể không phù hợp. Phần này thảo luận về cách ghi đè hành vi phân tích thông thường.Điều chỉnh cờ trình biên dịch/liên kếtBiên dịch một phần mở rộng Python được viết bằng C hoặc C ++ đôi khi sẽ yêu cầu chỉ định các cờ tùy chỉnh cho trình biên dịch và trình liên kết để sử dụng một thư viện cụ thể hoặc tạo ra một loại mã đối tượng đặc biệt. Điều này đặc biệt đúng nếu tiện ích mở rộng đã được thử nghiệm trên nền tảng của bạn hoặc nếu bạn đang cố gắng kết hợp chéo Python. Trong trường hợp chung nhất, tác giả mở rộng có thể dự đoán rằng việc biên dịch các tiện ích mở rộng sẽ phức tạp và cung cấp một tệp 64 để bạn chỉnh sửa. Điều này có thể sẽ chỉ được thực hiện nếu phân phối mô -đun chứa nhiều mô -đun mở rộng riêng biệt hoặc nếu chúng thường yêu cầu các bộ cờ biên dịch phức tạp để hoạt động.Một tệp 64, nếu có, được phân tích cú pháp để có được danh sách các phần mở rộng để xây dựng. Mỗi dòng trong một 64 mô tả một mô -đun duy nhất. Các dòng có cấu trúc sau: 1Hãy lần lượt kiểm tra từng lĩnh vực.
Nếu một nền tảng cụ thể yêu cầu một thư viện đặc biệt trên nền tảng của bạn, bạn có thể thêm nó bằng cách chỉnh sửa tệp 64 và chạy 81. Ví dụ: nếu mô -đun được xác định bởi dòngPhải được liên kết với thư viện toán học 82 trên nền tảng của bạn, chỉ cần thêm 83 vào dòng:Các công tắc tùy ý dành cho trình biên dịch hoặc trình liên kết có thể được cung cấp với các tùy chọn 84 Arg và 85 Arg: 2Tùy chọn tiếp theo sau 84 và 85 sẽ được nối vào dòng lệnh thích hợp, vì vậy trong ví dụ trên, trình biên dịch sẽ được truyền tùy chọn ____288 và trình liên kết sẽ được truyền 89. Nếu tùy chọn trình biên dịch yêu cầu đối số, bạn sẽ phải cung cấp nhiều tùy chọn 84; Ví dụ: để vượt qua 91 tệp 64 sẽ phải chứa 93.Cờ trình biên dịch cũng có thể được cung cấp thông qua việc thiết lập biến môi trường 94. Nếu được đặt, nội dung của 94 sẽ được thêm vào các cờ biên dịch được chỉ định trong tệp 64. 94 environment variable. If set, the contents of 94 will be added to the compiler flags
specified in the 64 file.Sử dụng trình biên dịch không phải Microsoft trên Windows¶Borland/Codegear C ++ ¶Tiểu mục này mô tả các bước cần thiết để sử dụng Distutils với trình biên dịch Borland C ++ Phiên bản 5.5. Trước tiên, bạn phải biết rằng định dạng tệp đối tượng Borland (OMF) khác với định dạng được sử dụng bởi phiên bản Python bạn có thể tải xuống từ trang web Python hoặc Activeestate. . Bạn có thể làm điều này như sau: 3Chương trình 98 đi kèm với trình biên dịch Borland. Tệp 97 nằm trong thư mục 00 của cài đặt Python của bạn. Nếu tiện ích mở rộng của bạn sử dụng các thư viện khác (zlib, thì), bạn cũng phải chuyển đổi chúng.Các tệp được chuyển đổi phải cư trú trong các thư mục giống như các thư viện thông thường. Làm thế nào để Distutils quản lý để sử dụng các thư viện này với tên đã thay đổi của chúng? Nếu tiện ích mở rộng cần một thư viện (ví dụ: 01) Distutils kiểm tra trước nếu tìm thấy thư viện có hậu tố 02 (ví dụ: 03) và sau đó sử dụng thư viện này. Trong trường hợp, nó không tìm thấy một thư viện đặc biệt như vậy, nó sử dụng tên mặc định ( 04.) 1Để để Distutils biên dịch tiện ích mở rộng của bạn với Borland C ++, bây giờ bạn phải gõ: 4Nếu bạn muốn sử dụng trình biên dịch Borland C ++ làm mặc định, bạn có thể chỉ định điều này trong tệp cấu hình cá nhân hoặc toàn hệ thống của mình để biết DisTUTils (xem phần Tệp cấu hình Distutils.)Distutils Configuration Files.) GNU C / Cygwin / Mingw¶Phần này mô tả các bước cần thiết để sử dụng distutils với các trình biên dịch GNU C/C ++ trong các phân phối CYGWIN và MINGW của họ. 2 Đối với một thông dịch viên Python được xây dựng với Cygwin, mọi thứ sẽ hoạt động mà không cần bất kỳ bước nào sau đây. Không phải tất cả các tiện ích mở rộng có thể được xây dựng với Mingw hoặc Cygwin, nhưng nhiều người có thể. Các tiện ích mở rộng rất có thể không hoạt động là những phần mở rộng sử dụng C ++ hoặc phụ thuộc vào các tiện ích mở rộng Microsoft Visual C. Để để Distutils biên dịch tiện ích mở rộng của bạn với Cygwin, bạn phải gõ: 5và đối với Cygwin ở chế độ không cygwin 3 hoặc cho loại MingW: 6Nếu bạn muốn sử dụng bất kỳ tùy chọn/trình biên dịch nào làm mặc định, bạn nên xem xét việc viết nó trong tệp cấu hình cá nhân hoặc toàn hệ thống của mình cho DisTUTils (xem phần Tệp cấu hình Distutils.)Distutils Configuration Files.) Các phiên bản cũ của Python và Mingw¶Các hướng dẫn sau đây chỉ áp dụng nếu bạn sử dụng phiên bản Python kém hơn 2.4.1 với MINGW kém hơn 3.0.0 (với Binutils-2.13.90-20030111-1). Các trình biên dịch này yêu cầu một số thư viện đặc biệt. Nhiệm vụ này phức tạp hơn so với Borland, C ++, vì không có chương trình nào để chuyển đổi thư viện. Đầu tiên bạn phải tạo một danh sách các biểu tượng mà Python DLL xuất. . 7Vị trí của một 05 được cài đặt sẽ phụ thuộc vào các tùy chọn cài đặt và phiên bản và ngôn ngữ của Windows. Trong một bản cài đặt chỉ dành cho tôi, nó sẽ xuất hiện trong gốc của thư mục cài đặt. Trong một cài đặt được chia sẻ, nó sẽ được đặt trong thư mục hệ thống.Sau đó, bạn có thể tạo từ những thông tin này một thư viện nhập khẩu cho GCC. 8Thư viện kết quả phải được đặt trong cùng thư mục với 97. (Nên là thư mục 07 trong thư mục cài đặt Python của bạn.)Nếu tiện ích mở rộng của bạn sử dụng các thư viện khác (zlib, thì), bạn cũng có thể phải chuyển đổi chúng. Các tệp được chuyển đổi phải cư trú trong các thư mục giống như các thư viện thông thường làm. Chú thích 1Điều này cũng có nghĩa là bạn có thể thay thế tất cả các thư viện quan hệ hiện có bằng các thư viện OMF cùng tên. 2Kiểm tra https://www.sourceware.org/cygwin/ để biết thêm thông tin 3Sau đó, bạn không có sẵn mô phỏng POSIX, nhưng bạn cũng không cần 08.Làm cách nào để chạy Python Cài đặt PY?Để cài đặt gói bao gồm tệp setup.py, mở một cửa sổ lệnh hoặc thiết bị đầu cuối và: CD vào thư mục gốc nơi đặt setup.py. Nhập: Cài đặt python setup.py.cd into the root directory where setup.py is located. Enter: python setup.py install.
Làm cách nào để cài đặt Cài đặt PY?Tạo setup.py.. Trong cửa sổ công cụ dự án, chọn gói. Sau đó, từ menu chính, chọn Công cụ | Tạo setup.py .. Trong hộp thoại tập lệnh thiết lập mới, chỉ định tên gói, phiên bản của nó, tác giả, email tác giả, mô tả gói và bất kỳ chi tiết giấy phép nào:. Bấm OK khi sẵn sàng .. Cài đặt Cài đặt có được cài đặt không?Với phiên bản mới nhất của setuptools, lệnh cài đặt python setup.py đang được không dùng nữa (xem https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html để biết thêm thông tin). (see https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for more info).
Pip có chạy thiết lập PY không?PIP là một trình quản lý gói, có thể cài đặt, nâng cấp, danh sách và gỡ cài đặt các gói, như các trình quản lý gói quen thuộc bao gồm: DPKG, APT, YUM, URPMI, Cổng, v.v.Các tùy chọn để kiểm soát cách thức và nơi mọi thứ kết thúc được cài đặt.it will run python setup.py install , but with specific options to control how and where things end up installed. |