Ubuntuを使用しており、Python 2.7.5および3.4.0をインストールしています。 Python 2.7.5では、変数x = Value('i', 2)
を正常に割り当てることができますが、3.4.0ではできません。私は得ています:
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/python3.4にインストールされました。
Python 3.4に正しく更新しましたか?
Python 3.4はsr/local/libにインストールされますが、Python 3.3.2はsr/libなので、上書きされませんでした。
libffi-dev
をインストールしてpython3.7を再インストールすると、問題が修正されました。
py 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年後には追加する必要はありません。
python-dev
のような特定のライブラリが必要になる理由を説明しています。altinstall
引数ではなくinstall
引数を使用する理由を説明しています。それとは別に、選択する必要があるのは、満たされる必要がある#include
ディレクティブを探してcpythonコードベースを読むことですが、通常はパッケージをインストールしようとし続け、必要なパッケージをインストールするまで出力を読み続けることです成功します。
車が丘を転がるエンジニア、マネージャー、プログラマー の話を思い出します。
CentOSまたは任意のredhat linuxマシンにPython 3.7をインストールする詳細な手順:
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
このスレッド を参照してください。libffiのカスタマイズされたインストールについては、Python3.7がlibffiのライブラリの場所を見つけることは困難です。別の方法は、MakefileでCONFIGURE_LDFLAGS
変数を設定することです(例:CONFIGURE_LDFLAGS="-L/path/to/libffi-3.2.1/lib64"
)。