2013-07-25 46 views
10

Tôi gặp sự cố khi cài đặt lxml vào Mac OS của mình. Tôi gặp lỗi sau khi xây dựng nó. Đây là lỗi tôi phải khi sử dụng pip install lxmlKhông cài đặt lxml trong MacOS 10.8.4

/private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found

Tôi đã cài đặt libxml2 với brew:

brew install libxml2 
brew link libxml2 --force 

Tôi mới với máy Mac. Trong Ubuntu, nó có nghĩa là gói libxml2-dev phải được cài đặt.

Cập nhật: đây là pip.log:

"~/.pip/pip.log" 124L, 8293C requirement_set.install(install_options, global_options, root=options.root_path) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 1185, in install requirement.install(install_options, global_options, *args, **kwargs) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 592, in install cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/util.py", line 662, in call_subprocess % (command_desc, proc.returncode, cwd)) InstallationError: Command /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;file='/private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml/setup.py';exec(compile(open(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-nsV0iT-record/install-record.txt --single-version-externally-managed failed with error code 1 in /private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml

Bất kỳ ý tưởng? Cảm ơn rất nhiều

+0

Có thông báo lỗi trong '~/.pip/pip.log' không? Sau khi cài đặt 'libxml2' với' brew', bạn có thấy các tệp tiêu đề chính xác trong '/ usr/include/libxml2/libxml' không? Các tiêu đề 'libxml2' có chắc chắn trên đường dẫn của bạn không? – ChrisP

+0

@ChrisP, tôi đã cập nhật câu hỏi của mình bằng nhật ký. Không có thư mục/usr/include trong máy của tôi. –

+0

Hy vọng rằng ai đó đến cùng với những người hiểu biết những gì đang lên. Đề xuất duy nhất của tôi ngay bây giờ là đảm bảo tiêu đề libxml2 có thể truy cập được qua PATH. Homebrew nên cài đặt vào '/ usr/local', mặc định là PATH. Bạn có thể tìm thấy tệp 'xmlversion.h' trên máy của mình, chỉ để đảm bảo tệp đó có ở đó không? Nếu bạn tiếp tục gặp sự cố, tôi khuyên bạn nên phân phối Python [Enthought] (http://www.enthought.com), có nhiều công cụ khó xây dựng (bao gồm 'lxml') theo mặc định. Tôi biết điều đó không giải quyết được vấn đề chính xác của bạn. – ChrisP

Trả lời

21

Tắt xmlversion.h không được bao gồm trong đường dẫn biên dịch mặc dù nó nằm trong PATH. Sửa đổi env C_INCLUDE_PATH sửa lỗi cho tôi:

C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.1/include/libxml2:$C_INCLUDE_PATH

+3

Chỉ cần một mẹo cho bất cứ ai mà tình cờ khi điều này: Tôi đã có cùng một vấn đề và điều này đã được sửa chữa. '' 'xuất C_INCLUDE_PATH =/usr/local/Cellar/libxml2/2.9.1/include/libxml2: $ C_INCLUDE_PATH''' – zgohr

+0

Điều này đã biên dịch lxml cho tôi trên 10.9 và phiên bản libxml2 tự cài đặt. Cảm ơn! – synthesizerpatel

+0

Nếu bạn đang sử dụng macports: xuất C_INCLUDE_PATH =/usr/local/include/libxml2: $ C_INCLUDE_PATH – Petri

19

Nếu bạn đang chạy Mavericks với Xcode cài đặt, bạn cũng có thể sử dụng:

export C_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/libxml2:$C_INCLUDE_PATH 
+0

Với Xcode 6, lệnh này hiện là: xuất C_INCLUDE_PATH =/Applications/Xcode.app // Nội dung/Nhà phát triển/Nền tảng/MacOSX.platform/Nhà phát triển/SDK/MacOSX10.9.sdk/usr/include/libxml2: $ C_INCLUDE_PATH – Markus

+4

Đối với OSX Yosemite, hiện tại, bạn đang xuất 'C_INCLUDE_PATH =/Applications/Xcode.app/Nội dung/Nhà phát triển/Nền tảng/MacOSX.platform/Nhà phát triển/SDK/MacOSX10.10.sdk/usr/include/libxml2: $ C_INCLUDE_PATH'' –

4
brew install libxml2 
brew link libxml2 --force 
export C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.2/include/libxml2:$C_INCLUDE_PATH 
+2

please , cung cấp một giải thích cho mã của bạn – arghtype

+0

Không hoạt động trên 10.10.2 – Bryson

5

Không có câu trả lời khác (xuất khẩu C_INCLUDE_PATH) đã làm cho tôi. Tuy nhiên, việc thiết lập biến môi trường CFLAGS thành root X 10.10 libxml2 làm việc giống như một sự quyến rũ.

export CFLAGS=-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 
+1

Đây là một trong đó làm việc cho tôi trên 10.10.2 với vỏ cá. Lần đầu tiên tôi mở một 'bash' shell, sau đó thực hiện' export' được liệt kê ở đây, sau đó chạy lại 'pip install lxml' và cài đặt cuối cùng đã hoàn thành thành công. Cảm ơn Dan! –

+1

@ NickK9 vui vì tôi có thể giúp! –

+0

Tương tự ở đây, đây là phiên bản duy nhất hoạt động trên 10.10.2 –

5

Tôi đã Python và libxml cài đặt qua brew, điều này làm việc cho tôi sau khi thử tất cả mọi thứ trên:

sudo mkdir /usr/include # If /usr/include is missing 
sudo ln -s /usr/local/Cellar/libxml2/2.9.2/include/libxml2 /usr/include/libxml2 

Lưu ý: Bạn sẽ cần phải kiểm tra đường dẫn của riêng bạn cho các phiên bản mới nhất.

Vì các tiêu đề có sẵn ở nơi khác và được tìm kiếm trong một thư mục cụ thể (được gọi trong lệnh gọi là clang để biên dịch) - và vì lý do nào đó, địa điểm thay thế không được chọn, tôi đã tạo liên kết mềm ở bên phải địa điểm.

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