Python3:ImportError: 모듈 다중 처리에서 값을 사용할 때 '_ctypes'라는 이름의 모듈이 없습니다.
Ubuntu는 Python 2.7.5, 3.4.0으로 구성되어 있습니다.2. Python 2.7.5를 정상적으로 할 수 .x = Value('i', 2)
3. 3.4.에는 없습니다.★★★★★★★★★★★★★★★★★★:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.4/multiprocessing/context.py", line 132, in Value
from .sharedctypes import Value
File "/usr/local/lib/python3.4/multiprocessing/sharedctypes.py", line 10, in <
module>
import ctypes
File "/usr/local/lib/python3.4/ctypes/__init__.py", line 7, in <module>
from _ctypes import Union, Structure, Array
ImportError: No module named '_ctypes'
3.4.0 소스 설치를 통해 3.3.2로 업데이트했습니다./usr/local/lib/python 3.4에 설치되어 있습니다.
Python 3.4로 올바르게 업데이트 되었나요?
Python 3.4는 usr/local/lib에 설치되어 있는 반면 Python 3.3.2는 usr/lib에 설치되어 있기 때문에 덮어쓰지 않았습니다.
중libffi-dev
을 다시 7을 다시 설치하면 문제가 해결되었습니다.
폭 3.7 폭 3.7 폭의 파이를 깨끗이 libffi-dev
에 실패하게 됩니다.그렇지 않으면 나중에 실패합니다.
RHEL/Fedora를 사용하는 경우:
yum install libffi-devel
또는
sudo dnf install libffi-devel
Debian/Ubuntu를 사용하는 경우:
sudo apt-get install libffi-dev
새로운 Debian 이미지에서 https://github.com/python/cpython를 복제하고 다음 작업을 수행합니다.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
, 그럼 이번에는 이 동작을 해 .configure
"이것들"은 다음과 같습니다.
./configure
make # alternatively `make -j 4` will utilize 4 threads
sudo make altinstall
3.7을 설치하고 날 위해 일하고 있어.
약간의 갱신
제가 이 답변을 좀 더 설명해서 업데이트하겠다고 말한 것 같은데, 2년 후에는 더 이상 추가할 것이 없습니다.
- 이 SO 게시물은 왜 특정 도서관이 다음을 좋아하는지 설명합니다.
python-dev
필요할지도 몰라요 - 이 SO 게시물은 왜 사람들이 이 SO를 사용할 수 있는지 설명합니다.
altinstall
install
make 명령어로 인수를 지정합니다.
cpython codebase를 cpython cpython cpython cpython cpython cpython cpython cpython cpython cpython을 찾는 방법이 있습니다.#include
이 명령어를 충족시켜야 하는데, 제가 보통 하는 일은 패키지를 설치하려고 계속 시도하고 필요한 패키지를 설치할 때까지 출력을 읽는 것입니다.
언덕에서 차가 굴러 떨어지는 엔지니어, 매니저, 프로그래머의 이야기가 생각나네요.
pyenv를 사용하여 Debian/Raspbian/Ubuntu에서 "No module named '_ctypes' (i와 같은 모듈 없음)라는 오류가 나타나면 다음 명령을 실행해야 합니다.
sudo apt-get install libffi-dev
pyenv uninstall 3.7.6
pyenv install 3.7.6
3.7.6 대신 python 버전을 넣으세요.
Cent에 Python 3.7을 설치하는 세부 단계OS 또는 기타 Redhat Linux 머신:
- https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz에서 Python 다운로드
- 새 폴더의 내용 추출
- 같은 디렉토리에서 터미널 열기
- 다음 코드를 단계별로 실행합니다.
sudo yum -y install gcc gcc-c++ sudo yum -y install zlib zlib-devel sudo yum -y install libffi-devel ./configure make make install
Centos 설치를 추가하려고 합니다.
sudo yum -y install gcc gcc-c++
sudo yum -y install zlib zlib-devel
sudo yum -y install libffi-devel
python 버전 확인:
python3 -V
virtualenv 생성:
virtualenv -p python3 venv
이 Ubuntu 18.04 Python을 찾을 수 ._ctypes
pyenv 을을을 python py py py py py py py py py
같은 에는 ★★★★★★★★★★★★★★★★★★★★★★★.libffi-dev
가 이미 설치되어 있습니다. 중cpython
@MikeiLL의 제안대로 소스로부터의 것도 도움이 되지 않았습니다.
자가제조의 문제임이 판명되었습니다.
ajkerrigans가 제안한 pyenvs github 문제 해결 방법이 이 문제를 해결해 주었습니다.
솔루션 개요:pyenv에게 다음과 같은 명령으로 Homebrew 관리 GCC를 사용하여 Python을 구축하도록 지시합니다.
CC="$(brew --prefix gcc)/bin/gcc-11" \
pyenv install --verbose 3.10.0
이는 pyenv wiki에서 지정된 대로 Homebrew를 통해 빌드 종속성도 설치되었음을 전제로 합니다.이 문서에서는 Linux 상의 Homebrew의 경우 다음과 같습니다.
brew install bzip2 libffi libxml2 libxmlsec1 openssl readline sqlite xz zlib
이것으로 Debian에서도 같은 오류가 해결되었습니다.
sudo apt-get install libffi-dev
다시 컴파일합니다.
참고 자료: 문제 31652
어떤 해결책도 효과가 없었다.필요한 패키지가 모두 설치되면 python을 다시 컴파일해야 합니다.
다음의 순서에 따릅니다.
- 필요한 패키지 설치
- 실행합니다.
./configure --enable-optimizations
https://gist.github.com/jerblack/798718c1910ccdd4ede92481229043be
Ubuntu 18.04에서 다음 명령어로 Python 3.7.3을 설치하려고 하면 다음 오류가 발생합니다.$ pyenv install 3.7.3
. " " 를 실행한 후 $ sudo apt-get update && sudo apt-get install libffi-dev
(여기에 제시된 바와 같이).그 문제는 거기서 해결되었다.
이 답변을 바탕으로 단말기에 복사 붙여넣기만 하면 됩니다.
번째 실행 : 첫째번 first first :sudo apt-get -y update
그 후, 다음과 같이 합니다.
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade
sudo apt-get -y install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get -y install libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get -y install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get -y install libssl-dev openssl
sudo apt-get -y install libffi-dev
PS: 한 번에 전체 청크를 단말기에 복사하여 붙여넣을 수 있습니다.
, Python 의 모든 이 되는 은 python경 python, Python 설치와 된 문제 등입니다._ctypes
★★★★★★★★★★★★★★★★★」libffi
Linux/Linuxbrew에서는 Homebrew였습니다. pyenv
기뻐하다brew
was was was was was was was was 。$PATH
.
이 스레드 또는 이 스레드를 참조하십시오. 맞춤 libffi 설치를 위해 Python3.7은 libffi의 라이브러리 위치를 찾기 어렵습니다.다른 방법으로는,CONFIGURE_LDFLAGS
"" 또는 "Makefile")CONFIGURE_LDFLAGS="-L/path/to/libffi-3.2.1/lib64"
.
솔루션:apt-get을 사용하여 libffi-dev를 설치해도 도움이 되지 않았습니다.하지만 이 점이 도움이 되었습니다.소스에서 libffi를 설치하고 소스에서 Python 3.8을 설치합니다.
설정: Ubuntu 16.04 LTS Python 3.8.2
단계별:
때및 Visual Studio Code 실행 시 "Module Found Error: nameed 라는 메시지가python3 -c "import sklearn; sklearn.show_versions()"
.
- https://github.com/libffi/libffi/releases에서 libffi v3.3 다운로드
- libtool 설치:
sudo apt-get install libtool
libffi의 README.md 파일에는 autoconf 및 automake도 필요하다고 기재되어 있습니다.그것들은 이미 내 시스템에 설치되어 있었다. - docs 없이 libffi를 설정합니다.
./configure --disable-docs
make check
sudo make install
그 후 python 설치에서 _ctypes를 찾을 수 있었습니다.
루트가 없는 CentOS
libffi-3.2 설치(libffi-3.3 사용 안 함)
wget ftp://sourceware.org/pub/libffi/libffi-3.2.tar.gz
tar -xzf libffi-3.2.tar.gz
cd libffi-3.2/
./configure --syslog=$YOUR_LIBFFI_DIRPython3 설치
./configure --syslog=$YOUR_PATH/python/3.7.10 LDFLAGS=-L${YOUR_LIBFFI_DIR}/lib64 PKG_CONFIG_PATH=${YOUR_LIBFFI_DIR}/lib/pkgconfig --enable-shared
설치 및 설치하다
나도 같은 문제를 겪고 있었다.위의 솔루션 중 어느 것도 나에게 효과가 없었다.중요한 문제는 루트 액세스 권한이 없다는 것이었습니다.그래서 먼저 libffi 소스를 다운받습니다.그런 다음 일반적인 명령어로 컴파일했습니다.
./configure --prefix=desired_installation_path_to_libffi
make
그리고 나서 파이썬을 다시 컴파일해서
./configure --prefix=/home/user123/Softwares/Python/installation3/ LDFLAGS='-L/home/user123/Softwares/library/libffi/installation/lib64'
make
make install
이 경우 'home/user123/Softwares/library/libffi/installation/lib64'는 libffi.so이 있는 LIBFI 설치 디렉토리에 대한 경로입니다.또한 /home/user123/Softwares/Python/installation3/은 Python 설치 디렉토리의 경로입니다.케이스에 따라 수정해 주세요.
Miniconda를 사용해도 괜찮으시다면 기본적으로 필요한 외부 라이브러리와 _ctypes가 설치되어 있습니다.이것은 더 많은 공간을 차지하며 Python의 중간 정도의 오래된 버전을 사용해야 할 수도 있습니다(예를 들어, 이 문서에서는 3.8.2가 아닌 3.7.6).
php3(Python3)를 사용합니다. 우분투 Synaptic Package Manager
:
sudo apt-get install synaptic
여기서 누락된 모듈을 검색할 수 있습니다.ctype을 검색하여 모든 패키지를 설치합니다.그러면 Python dir에 가서
./configure
make install.
이것으로 당신의 문제가 해결될 것입니다.
Python의 하지 않고 로부터 Python을 /usr/local
- 하여 github에 합니다.
/path/to/local
- python 소스 코드를 다운로드하여 다음 구성으로 컴파일합니다.
export PKG_CONFIG_PATH=/path/to/local/lib/pkgconfig
./configure --prefix=/path/to/python \
LDFLAGS='-L/path/to/local/lib -Wl,-R/path/to/local/lib' \
--enable-optimizations
make
make install
MAC M1 을 사용하고 있는데, 다음의 에러가 발생했습니다.
... __boot__.py", line 30, in <module> import ctypes
and something was said about the file libffi.8.dylib
아나콘다에서 이걸 다운받았는데 이제 다 작동하네요.
https://anaconda.org/wakari/libffi
상기 중 많은 부분이 MAC용이 아니거나 오래된 것이므로 Python은 Anaconda 버전 3.10.4에 있습니다.
py2app로 작성한 어플리케이션 파일이 동작합니다!!
"잘못하고 있다"는 이유로 아무도 귀담아 듣지 않는 일을 하고 있지만, 설명하기에는 너무 애매한 이유로 "잘못된 방법"을 사용해야 하는 경우에는 다음과 같이 시도해 볼 수 있습니다.
libffi를 가져와 통상대로 사용자 설치 영역에 설치합니다.
git clone https://github.com/libffi/libffi.git
cd libffi
./configure --prefix=path/to/your/install/root
make
make install
그런 다음 Python 3 소스로 돌아가서 setup.py에서 python 소스 디렉토리의 최상위 레벨에 있는 코드의 이 부분을 찾으십시오.
ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")]
if not ffi_inc or ffi_inc[0] == '':
ffi_inc = find_file('ffi.h', [], inc_dirs)
if ffi_inc is not None:
ffi_h = ffi_inc[0] + '/ffi.h'
if not os.path.exists(ffi_h):
ffi_inc = None
print('Header file {} does not exist'.format(ffi_h))
ffi_lib = None
if ffi_inc is not None:
for lib_name in ('ffi', 'ffi_pic'):
if (self.compiler.find_library_file(lib_dirs, lib_name)):
ffi_lib = lib_name
break
ffi_lib="ffi" # --- AND INSERT THIS LINE HERE THAT DOES NOT APPEAR ---
if ffi_inc and ffi_lib:
ext.include_dirs.extend(ffi_inc)
ext.libraries.append(ffi_lib)
self.use_system_libffi = True
그리고 위에 표시한 줄을 댓글로 추가해 주세요.필요한 이유와 Linux 플랫폼에서 시스템 ffi를 사용하지 않고 설정할 수 없는 이유를 몇 시간 안에 알게 될 것입니다.그러나 그 이후 모든 것이 정상적으로 동작하고 있습니다.그렇지 않으면 행운을 빌어YMMV
IT의 기능: 이 논리를 무시하고 컴파일러 링크 명령어로 "lffi"를 추가합니다.이 명령어만 있으면 됩니다.되어 있는 으로 검출되고 있을 가능성이 은, 「Library User installed」의 입니다.PKG_CONFIG_PATH
path/to/your/install/root/lib/pkgconfig
.
언급URL : https://stackoverflow.com/questions/27022373/python3-importerror-no-module-named-ctypes-when-using-value-from-module-mul
'programing' 카테고리의 다른 글
Vuex 스토어에서 모든 인스턴스를 업데이트합니다. 현재 인스턴스만 업데이트하십시오. (0) | 2022.11.17 |
---|---|
Python에서 단일 언더스코어 "_" 변수의 목적은 무엇입니까? (0) | 2022.11.17 |
목록의 목록을 바꿉니다. (0) | 2022.11.17 |
intl-tel-input과 vuejs2의 병용 (0) | 2022.11.17 |
MariaDB가 기동하지 않는다. (0) | 2022.11.17 |