Không thể chạy curl-config: [Errno 2] Không có tệp hoặc thư mục nào như vậy khi cài đặt pycurl


185

Tôi đang cố gắng cài đặt pycurl qua:

sudo pip install pycurl

Nó đã tải xuống tốt, nhưng khi nó chạy setup.py tôi nhận được dấu vết sau:

Downloading/unpacking pycurl
  Running setup.py egg_info for package pycurl
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/tmp/pip-build-root/pycurl/setup.py", line 563, in <module>
        ext = get_extension()
      File "/tmp/pip-build-root/pycurl/setup.py", line 368, in get_extension
        ext_config = ExtensionConfiguration()
      File "/tmp/pip-build-root/pycurl/setup.py", line 65, in __init__
        self.configure()
      File "/tmp/pip-build-root/pycurl/setup.py", line 100, in configure_unix
        raise ConfigurationError(msg)
    __main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/tmp/pip-build-root/pycurl/setup.py", line 563, in <module>

    ext = get_extension()

  File "/tmp/pip-build-root/pycurl/setup.py", line 368, in get_extension

    ext_config = ExtensionConfiguration()

  File "/tmp/pip-build-root/pycurl/setup.py", line 65, in __init__

    self.configure()

  File "/tmp/pip-build-root/pycurl/setup.py", line 100, in configure_unix

    raise ConfigurationError(msg)

__main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory

Bất cứ ý tưởng tại sao điều này đang xảy ra và làm thế nào để có được xung quanh nó


bạn đang sử dụng Ubuntu phải không?
Padraic Cickyham

Tôi đang dùng OSX với kết nối ssh với thiết bị đầu cuối linux
user3688241

Bạn đang cố gắng cài đặt pycurl ở đâu?
Padraic Cickyham

Câu trả lời:


461

Trên Debian tôi cần các gói sau để sửa lỗi này

sudo apt install libcurl4-openssl-dev libssl-dev

4
Điều đó đã khắc phục sự cố của tôi trên Ubuntu 12.04 (x64) và Python3.4 được cài đặt
Ilia Shakitko

23
Cảm ơn, tôi cần libssl-devgói ngoài của bạn. Lạ lùng cách phân piptách từ quản lý gói hệ thống nhưng thậm chí không đưa ra gợi ý về gói nào tôi có thể thiếu trên bản phân phối linux rất phổ biến.
Mitja

1
Tôi cần cả libcurl4-openssl-dev và libssl-dev trên Debian 9: sudo apt-get install libcurl4-openssl-dev libssl-dev
david euler

12
Hoạt động trên Ubuntu 18.04 LTS.
John McGehee

3
@JohnMcGehee, vâng, cũng hoạt động trên Ubuntu 18.04.1 LTS trên WSL.
cháu trai

70

Tương tự với yumquản lý gói

yum install libcurl-devel

Nếu bạn sử dụng dnf, sử dụng

dnf install libcurl-devel

Trong trường hợp của tôi, python-devel cũng bị mất, vì vậy, điều sau đây đã giải quyết vấn đề cho tôi: yum cài đặt libcurl-devel python-devel
sokhaty

19

trong trường hợp của tôi, điều này đã khắc phục vấn đề:

sudo apt-get install libssl-dev libcurl4-openssl-dev python-dev

như đã giải thích ở đây


cảm ơn gói python-dev! tôi đã có lỗi này mà không có nó: src / pycurl.h: 4: 20: lỗi nghiêm trọng: Python.h: Không có tệp hoặc thư mục như vậy
Skullone

12

Trong linux linux, bạn nên làm:

apk add curl-dev python3-dev libressl-dev

apk add curl-devlà đủ cho tôi trong python2.7-alpinehình ảnh docker , cảm ơn!
ItayB

2

Tôi đã gặp vấn đề tương tự trong khi cố gắng để Shinken 2.0.3 khởi động trên Ubuntu. Cuối cùng, tôi đã gỡ cài đặt đầy đủ sau đó cài đặt lại Shinken pip -v. Khi nó dọn dẹp, nó đã đề cập:

Warning: missing python-pycurl lib, you MUST install it before launch the shinken daemons

Đã cài đặt nó với apt-get, và tất cả các nhà môi giới đã kích hoạt như mong đợi :-)


2

Điều đó đã giải quyết vấn đề của tôi trên Ubuntu 14.04:

apt-get cài đặt libcurl4-gnutls-dev



0

Trong trường hợp của tôi, tôi tiếp tục nhận được thông báo lỗi tương tự. Tôi sử dụng fedora. Tôi đã giải quyết nó bằng cách làm:

sudo dnf install pycurl

Điều này được cài đặt eveything mà tôi cần cho nó để làm việc.


0

Tôi gặp vấn đề này trên Mac và nó có liên quan đến opensslgói là phiên bản cũ hơn của những gì nó được yêu cầu pycurl.pycurlcó thể sử dụng các thư viện ssl khác thay vì openssl theo sự hiểu biết của tôi về nó. Xác minh thư viện ssl nào bạn đang sử dụng và cập nhật vì rất có khả năng khắc phục sự cố.

Tôi đã sửa lỗi này bằng cách:

  • đang chạy brew upgrade
  • tải xuống mới nhất pycurl-x.y.z.tar.gztừ http://pycurl.io/
  • giải nén gói ở trên và thay đổi thư mục vào nó
  • chạy python setup.py --with-openssl installnhư openssl là thư viện tôi đã cài đặt. Nếu thư viện ssl của bạn là gnutlshoặc nsssau đó sẽ phải sử dụng --with-gnutlshoặc --with-nsstheo đó. Bạn sẽ có thể tìm thêm thông tin cài đặt trong kho github của họ .


0

Xin lưu ý rằng nếu bạn đang sử dụng nodejs (tại thời điểm viết bài), sự phụ thuộc vào libssl 1.0. * - vì vậy việc cài đặt thư viện SSL thay thế sẽ phá vỡ cài đặt nodejs của bạn.

Một giải pháp thay thế để cài đặt thư viện SSL khác là đăng trong câu trả lời này tại đây: https://stackoverflow.com/a/59927568/13564342 để thay thế cài đặt libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.