2016-02-24 21 views
7

Tôi đang làm việc trên một dự án được viết bằng Python 2, và tôi đang nâng cấp nó lên Python 3. Cho đến nay, tôi vừa tìm ra các lỗi cú pháp nhỏ dễ sửa chữa. Những gì tôi đã làm được tạo ra một dự án mới trong Python 3, đảm bảo rằng nó đã làm việc và sao chép các đoạn mã từ dự án cũ sang dự án mới.Tại sao pip không thể tìm thấy pysvn?

Hiện tại, tôi đang gặp sự cố với pysvn. Ban đầu, tôi gặp phải lỗi này:

ImportError: No module named 'pysvn'

Tại thời điểm này, tôi đã thử sử dụng pip install pysvn, không hoạt động. Tôi đã nhận như sau:

pip install pysvn

Collecting pysvn

Could not find a version that satisfies the requirement pysvn (from versions:)

No matching distribution found for pysvn

Vì vậy, sau đó sau một chút về nghiên cứu, tôi đã đi đến pysvn download site và cố gắng:

>pip install --index-url http://pysvn.tigris.org/project_downloads.html pysvn, mà đã cho tôi lỗi này:

Collecting pysvn

The repository located at pysvn.tigris.org is not a trusted or secure host and is being ignored. If this repository is available via HTTPS it is recommended to use HTTPS instead, otherwise you may silence this warning and allow it anyways with '--trusted-host pysvn.tigris.org'.

và cũng cùng một lỗi như khi tôi thử >pip install pysvn.

Bước tiếp theo của tôi là tải xuống tệp .exe cho phiên bản tôi cần theo cách thủ công và tôi đã có thể cài đặt thành công pysvn. Tôi đã kiểm tra thư mục trang web gói, và pysvn là thực sự có, nhưng pip vẫn không thể cho tôi biết bất cứ điều gì về nó:

>pip show pysvn 

> 

Khi tôi làm việc này cho một mô-đun cài đặt, selen ví dụ, tôi nhận được những điều sau đây:

pip show selenium


Metadata-Version: 1.1

Name: selenium

Version: 2.49.2

Summary: Python bindings for Selenium

Home-page: https://github.com/SeleniumHQ/selenium/

Author: UNKNOWN

Author-email: UNKNOWN

License: UNKNOWN

Location: ...\lib\site-packages

Requires:

Tôi đã có thể xác minh rằng việc cài đặt pysvn đã thành công vì dự án của tôi hiện đang chạy thay vì đưa cho tôi ImportError đó.

Vậy tại sao có thể pip không cung cấp thông tin cho mô-đun khác trong cùng thư mục đã được cài đặt thành công?

+0

Bước đầu tiên là đảm bảo rằng pysvn nằm ở nơi bạn nghĩ bằng cách làm như sau: '>>> nhập pysv >>> nhập kiểm tra >>> inspect.getfile (pysvn)' – Igor

+0

Theo những gì đã cho tôi, đó là chính xác nơi tôi tìm thấy nó sau khi nó được cài đặt (tại 'lib \ site-packages \ pysvn'). – DJGrandpaJ

+0

Thử chạy 'python -m pip list'. Nó có xuất hiện trong danh sách các gói đã cài đặt không? – Igor

Trả lời

6

Khi nó quay ra, bởi vì tôi đã không sử dụng pip install cho pysvn, pip không biết rằng pysvn tồn tại. Bởi vì nó không có sẵn từ PyPI (the Python Package Index), không có cách nào mà pip có thể nhìn thấy nó (bởi vì đó là nơi pip đi đầu tiên để tìm gói mà nó đang cố gắng để cài đặt).

Từ pip user guide:

pip supports installing from PyPI, version control, local projects, and directly from distribution files.

Kể từ khi tôi đã thậm chí tải pysvn từ its own download site (mà không phải là bất kỳ trong 4 tùy chọn ở trên) và chạy .exe bằng tay, pip đơn giản là không biết về nó mặc dù nó nằm trong cùng thư mục với các gói khác được cài đặt bởi pip.

Tôi cho rằng tôi cũng có thể truy lục các tệp phân phối và sử dụng pip với các tệp đó, nhưng cách giải quyết của tôi đã thực hiện thủ thuật.

+0

Ah tốt để biết. Cảm ơn đã theo lên. – Igor

+0

PyPI không cho phép nhiều hơn 1 nhị phân cho một phiên bản của python. Pysvn hỗ trợ một nhị phân cho mỗi phiên bản SVN. Điều đó nghĩa là PyPI không đủ mạnh để hỗ trợ các phần mở rộng như pysvn. Đó là một vấn đề đã biết với PyPI. –

+0

Trên các hệ thống Linux, bạn thường có thể cài đặt gói Debian/Fedora. Tình hình của Mac và Windows phức tạp hơn nhiều. Nó không dễ dàng để xây dựng pysvn. Bạn phải xây dựng SVN và các phụ thuộc của nó. Một lần nữa điều này vượt xa những gì PyPi có thể giúp đỡ. –

Các vấn đề liên quan