我尝试使用:
编译python3.6emc@belvedere:~/py36/Python-3.6.0rc1> ./configure --prefix=/home/emc/py36 --with-system-expat --with-system-expat --with-system-ffi --disable-ipv6 && make && make install
编译成功我可以开始翻译:
emc@belvedere:~/py36/bin> ./python3.6
Python 3.6.0rc1 (default, Dec 14 2016, 13:08:45)
[GCC 4.8.1 20130909 [gcc-4_8-branch revision 202388]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
但:
emc@belvedere:~/py36/bin> pip3.6
Traceback (most recent call last):
File "/home/emc/py36/lib/python3.6/site-packages/pip/_vendor/requests/packages/__init__.py", line 27, in <module>
from . import urllib3
File "/home/emc/py36/lib/python3.6/site-packages/pip/_vendor/requests/packages/urllib3/__init__.py", line 8, in <module>
from .connectionpool import (
File "/home/emc/py36/lib/python3.6/site-packages/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 7, in <module>
from socket import error as SocketError, timeout as SocketTimeout
File "/home/emc/py36/lib/python3.6/socket.py", line 49, in <module>
import _socket
ModuleNotFoundError: No module named '_socket'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/emc/py36/bin/pip3.6", line 7, in <module>
from pip import main
File "/home/emc/py36/lib/python3.6/site-packages/pip/__init__.py", line 21, in <module>
from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
File "/home/emc/py36/lib/python3.6/site-packages/pip/_vendor/requests/__init__.py", line 62, in <module>
from .packages.urllib3.exceptions import DependencyWarning
File "/home/emc/py36/lib/python3.6/site-packages/pip/_vendor/requests/packages/__init__.py", line 29, in <module>
import urllib3
ModuleNotFoundError: No module named 'urllib3'
在配置期间,我没有遇到任何问题:
http://pastebin.com/ePQ1awas
实际上我可以看到一些socket lib:
/home/emc/py36/lib64/python3.6/lib-dynload/_socket.cpython-36m-x86_64-linux-gnu.so
编辑:
无法导入套接字(线程相同)
>>> import _socket
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named '_socket'
>>>
>>>
>>> import socket
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/emc/py36/lib/python3.6/socket.py", line 49, in <module>
import _socket
ModuleNotFoundError: No module named '_socket'
答案 0 :(得分:2)
将 /home/emc/py36/lib/python3.6/site-packages 添加到 PYTHONPATH 解决了问题。
答案 1 :(得分:1)
使用prefix=/usr/local
构建3.7.4之后,我遇到了类似的问题
修复是在.bashrc中添加两行:
export PYTHONHOME=/usr/local
export PYTHONPATH=/usr/local/lib64/python3.7/lib-dynload