Hướng dẫn python setup py install test dependencies - python setup py install test phụ thuộc
Dung dịchTox 2.6 đã giới thiệu tùy chọn 8. Điều này sẽ cài đặt 8 từ SDist mà nó vừa xây dựng, chỉ cho SDist đó và tại thời điểm đó, nó đang thực hiện cài đặt SDIST bình thường. Show setup.py trông giống như:
Tox.ini trông giống như:
Mối quan tâmCác phương pháp khác có thể nhận được kết quả tương tự nhưng đưa ra rủi ro không cần thiết và giới hạn tính hữu ích của các tính năng khác: 0 là một chút hack. Lĩnh vực dành cho các gói nhu cầu môi trường. Nếu setup.py install_requires tham chiếu một gói khác mà bạn phát triển, bạn có thể sử dụng nó để kéo phiên bản trước khi phát hành của nó. Như được hiển thị, nó sẽ cài đặt toàn bộ gói của bạn từ thư mục làm việc của bạn (bất kỳ trạng thái nào đang ở!) Chỉ để có được trong danh sách các gói trong 1. 2 sẽ chạy tiếp theo, cài đặt sdist mới được đúc của bạn. Nói tóm lại, các vấn đề với sdist có thể được che dấu vì bạn đã cài đặt từ bản sao làm việc của mình.Chỉnh sửa 2 là quá mức cần thiết. Nó sẽ ghi đè các mục được cài đặt thông qua 4. (Một lần nữa có thể bạn đã sử dụng nó để cài đặt một phiên bản cụ thể của gói). 5 được sử dụng khi 6 được chạy. Tox khuyên bạn nên tránh 6 để bạn có thể bỏ qua tất cả cùng nhau. Tôi đã tìm thấy vấn đề này trong CCDProc, nhưng tôi báo cáo ở đây vì nó dường như là một vấn đề của những người giúp đỡ Astropy. CCDProc yêu cầu mô-đun pytest-capturelog và chỉ định rằng trong 5 của nó trong setup.py. .( https://github.com/astropy/ccdproc/blob/master/setup.py#L98 ) I don't have pytest-capturelog installed on my machine and the corresponding tests fail with
Thất bại của luận án biến mất sau khi cài đặt thủ công pytest-capturelog. Do đó, có vẻ như 6 không cài đặt các phụ thuộc cần thiết hoặc nó cài đặt chúng ở một vị trí mà chúng không được tìm thấy. (Sự hiểu biết của tôi là các phụ thuộc 5 chỉ được cài đặt trong thư mục tạm thời, nhưng tôi có thể sai.)Thus, it seems that either 6 does not install the required dependencies or it installs them in a location
where they are not found.(My understanding is that 5 dependencies are installed in a temporary directory only, but I might be wrong.)Có hai cách giải quyết rõ ràng: cài đặt các phụ thuộc kiểm tra bằng tay hoặc đưa chúng vào example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project.2 mặc dù chúng chỉ cần thử nghiệm. . (Note that this does not show up as an issue in the travis, because this dependency is installed by hand here https://github.com/astropy/ccdproc/blob/master/.travis.yml#L101 ) CC: @mwcraig
Khi bạn đang sử dụng Python một cách chuyên nghiệp, nó trả tiền để thiết lập các dự án của bạn một cách nhất quán. Điều này giúp các cộng tác viên của bạn nhanh chóng hiểu được cấu trúc của một dự án và giúp họ dễ dàng thiết lập dự án trên máy của họ. Chìa khóa để thiết lập dự án của bạn là tệp example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project.3. Trong blog này, tôi sẽ đi vào chi tiết của tập tin này. in a consistent manner. This helps your collaborators quickly understand the structure of a project, and makes it easier for them to set up the project on their machine. The key to setting up your project is the example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project.3 file. In this blog I’ll go into the details of this file. Nơi chúng tôi bắt đầuỞ đây tôi cho rằng bạn đã có một gói mà bạn muốn thiết lập. Đây không cần phải là một gói đã hoàn thành - lý tưởng nhất là bạn nên tạo example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project.3 lâu trước khi dự án của bạn kết thúc. Nó thậm chí có thể là một gói trống; Chỉ cần đảm bảo thư mục gói tồn tại và chứa một tệp có tên example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project.8 (có thể trống). This does not need to be a finished package – ideally you should create the example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project.3 long before your project is finished. It could even be an empty package; just make sure the package folder exists and contains a file named example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project.8 (which may be empty). Nếu bạn theo dõi cấu trúc của đồng nghiệp Henk, cho dự án của bạn, tình huống bắt đầu của bạn sẽ trông giống như thế này: example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project. Bạn có thể có các tệp hoặc thư mục khác trong cấu trúc của mình, ví dụ như các thư mục có tên example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project.9, from exampleproject.example import example_function0 hoặc from exampleproject.example import example_function1, nhưng những aren này được yêu cầu. folders named example_project/ ├── exampleproject/ Python package with source code. │ ├── __init__.py Make the folder a package. │ └── example.py Example module. └── README.md README with info of the project.9, from exampleproject.example import example_function0 or from exampleproject.example import example_function1, but these aren’t required. Trường hợp cho một |