vấn đề dường như là chỉ có các tệp tiêu đề cho Python 2. 7 và Trăn 3. 7 được cài đặt trong khi ứng dụng của tôi sử dụng Python 3. 10. 7 [được hỗ trợ chính thức]
$ echo $PYTHON_VERSION
3.10.7
$ lsb_release -d
Description: Debian GNU/Linux 10 [buster]
$ apt list | grep libpython | grep dev
libpython-all-dev/now 2.7.16-1 amd64 [installed,local]
libpython-dev/now 2.7.16-1 amd64 [installed,local]
libpython2-dev/now 2.7.16-1 amd64 [installed,local]
libpython2.7-dev/now 2.7.16-2+deb10u1 amd64 [installed,local]
libpython3-dev/now 3.7.3-1 amd64 [installed,local]
libpython3.7-dev/now 3.7.3-2+deb10u3 amd64 [installed,local]
Cài đặt gói từ PyPI yêu cầu biên dịch hoạt động tốt đối với phiên bản Python cấp hệ thống [trong trường hợp này là Python 3. 7]
Một lỗi nghiêm trọng khiến chương trình kết thúc mà thực tế không có cảnh báo mà thậm chí không lưu trạng thái của nó. Nó thường xảy ra khi một ứng dụng cố gắng truy cập một phần thông tin hoặc dữ liệu không hợp lệ. Chương trình đóng lại khi nó hiển thị hành động bất hợp pháp và đưa người dùng trở lại hệ điều hành. Khi xảy ra lỗi nghiêm trọng, người dùng có thể mất mọi thay đổi chưa được lưu trong chương trình.
lỗi nghiêm trọng. con trăn. h. Không có tập tin hoặc thư mục
Khi nào xảy ra lỗi?
Nói chung, bạn gặp phải lỗi này khi cố gắng tạo tệp đầu ra trong khi xây dựng thư viện dùng chung bằng tệp có phần mở rộng C. Nói cách khác, bạn gặp phải lỗi này khi cố gắng tạo thư viện dùng chung bằng cách sử dụng phần mở rộng tệp của ngôn ngữ khác [ e. g. C ]
Ví dụ. Giả sử bạn sử dụng lệnh bên dưới
gcc -Wall utilsmodule.c -o Utilc
Khi bạn thực hiện lệnh trên, bạn sẽ nhận được thông báo lỗi sau
utilsmodule.c:1: 20: fatal error: Python.h: No such file or directory compilation terminated.
Bây giờ bạn đã biết lý do đằng sau sự xuất hiện của lỗi, hãy xem các cách khắc phục
#Sửa lỗi 1. Sử dụng Trình quản lý gói theo Hệ điều hành của bạn
Rất có thể, khi bạn gặp phải lỗi này, đó là do bạn chưa cài đặt đúng thư viện tĩnh và tệp tiêu đề. Do đó để khắc phục lỗi, bạn cần sử dụng trình quản lý gói để cài đặt chúng trên PC
Sử dụng các lệnh sau tùy theo hệ điều hành được cài đặt trên hệ thống của bạn.
Dành cho Ubuntu .sudo apt-get install python-dev
sudo apt-get install python3- dev Dành cho Fedora .
Sudo dnf install python-devel
Sudo dnf install python3- devel Dành cho CentOS .
sudo yum install python-devel
sudo yum install python3 – devel Dành cho Cygwin .
apt-cyg cài đặt python-devel
apt-cyg cài đặt python3- devel Dành cho openSUSE:
sudo zypper trong python- devel
sudo zypper trong python3 -devel Dành cho Alpine.
apk sudo thêm python-dev
apk sudo thêm python3 -dev
thận trọng. Lệnh trên chỉ hoạt động nếu bạn đang sử dụng phiên bản Python 2 hoặc Python 3
Các lệnh cho Python 3. 6, 3. 8 và 3. 9 phiên bản như sau
sudo apt install libpython3.6 -devsudo apt install libpython3.8 -devsudo apt install libpython3.9- dev
#Sửa lỗi 2. Đảm bảo rằng các tệp Python Dev đi kèm với hệ điều hành của bạn
Bạn có thể giải quyết lỗi này bằng cách kiểm tra xem các tệp dev Python có đi kèm với hệ điều hành của bạn không. Để tránh lỗi nghiêm trọng, bạn không nên mã hóa cứng thư viện và bao gồm các đường dẫn. Tuy nhiên, bạn có thể sử dụng pkg-config sẽ đưa ra các tùy chọn chính xác cho hệ thống cụ thể
$ pkg-config – cflags – libs python2-I/usr/include/python2.7 -lpython2.7
Ngoài ra, thêm phần sau vào dòng gcc
gcc $[pkg-config – cflags – libs python2] -Wall utilsmodule.c -o Utilc
#Sửa lỗi 3. Bằng cách thay đổi thư mục của tiêu đề
Đôi khi bạn có thể giải “
utilsmodule.c:1: 20: fatal error: Python.h: No such file or directory compilation terminated.0” đơn giản bằng cách thay đổi các tệp tiêu đề. Các tệp này thường được cài đặt bằng Python.
Định vị các tệp tiêu đề
Trên hệ điều hành Unix, các tệp tiêu đề được đặt trong các thư mục
utilsmodule.c:1: 20: fatal error: Python.h: No such file or directory compilation terminated.1 và
utilsmodule.c:1: 20: fatal error: Python.h: No such file or directory compilation terminated.2. Ở đây, các tiền tố được xác định bằng cách sử dụng các tham số cho tập lệnh cấu hình trong Python và phiên bản là
utilsmodule.c:1: 20: fatal error: Python.h: No such file or directory compilation terminated.3. Trên Windows, các tệp được cài đặt trong
utilsmodule.c:1: 20: fatal error: Python.h: No such file or directory compilation terminated.4, trong đó tiền tố là thư mục cài đặt được chỉ định cho trình cài đặt
Để tìm tệp tiêu đề, bạn có thể sử dụng cấu hình Python 3
gcc -Wall utilsmodule.c -o Utilc1
Nói chung, các tiêu đề phát triển Python được đặt trong thư mục được hiển thị
Để tránh lỗi, bạn phải bao gồm các tiêu đề bằng cách đặt cả hai thư mục trên đường dẫn tìm kiếm của trình biên dịch để bao gồm. Vì vậy, thay vì sử dụng thư mục tiêu đề sau, dẫn đến lỗi nghiêm trọng
gcc -Wall utilsmodule.c -o Utilc2
Chỉ cần thay đổi thư mục tiêu đề. Bạn thậm chí có thể thay đổi nó bằng cách sau
gcc -Wall utilsmodule.c -o Utilc3
sử dụng venv
Nếu bạn đang sử dụng một công cụ môi trường ảo chẳng hạn như venv, thì rất có thể, các tiêu đề phát triển Python sẽ được đưa vào quá trình biên dịch và liên kết theo mặc định. Nếu không, thì bạn sẽ nhận được thông báo lỗi
gcc -Wall utilsmodule.c -o Utilc4
Nếu điều này xảy ra, bạn phải yêu cầu thiết lập. py để tìm kiếm các tệp tiêu đề bằng cách đặt
utilsmodule.c:1: 20: fatal error: Python.h: No such file or directory compilation terminated.5. Bây giờ bạn có thể định vị các tệp tiêu đề và sử dụng chúng với Python
utilsmodule.c:1: 20: fatal error: Python.h: No such file or directory compilation terminated.6
gcc -Wall utilsmodule.c -o Utilc7
Phần kết luận
Trong bài viết này, chúng ta đã học cách giải bài toán
utilsmodule.c:1: 20: fatal error: Python.h: No such file or directory compilation terminated.7. Tôi hy vọng cuộc thảo luận này đã giúp bạn giải quyết vấn đề của bạn. Vui lòng theo dõi và đăng ký để biết thêm các giải pháp và thảo luận thú vị trong tương lai. học tập vui vẻ
Học viện Khoa học Máy tính Finxter
- Một trong những kỹ năng được tìm kiếm nhiều nhất trên Fiverr và Upwork là tìm kiếm trang web. Không tạo ra một sai sót. trích xuất dữ liệu theo chương trình từ các trang web là một kỹ năng sống quan trọng trong thế giới ngày nay được định hình bởi web và công việc từ xa
- Vì vậy, bạn có muốn thành thạo nghệ thuật quét web bằng BeautifulSoup của Python không?
- Nếu câu trả lời là có – khóa học này sẽ đưa bạn từ người mới bắt đầu đến chuyên gia về Quét web
Shubham Sayon
Tôi là một người tạo nội dung và Blogger Python chuyên nghiệp. Tôi đã xuất bản nhiều bài báo và tạo các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc với tư cách là một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Networking