2016-12-14 85 views
1

我尝试编译python3.6有:编译蟒蛇后失踪_socket 3.6

[email protected]:~/py36/Python-3.6.0rc1> ./configure --prefix=/home/emc/py36 --with-system-expat --with-system-expat --with-system-ffi --disable-ipv6 && make && make install 

编译成功我就可以开始解释:

[email protected]:~/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. 
>>> 

但:

[email protected]:~/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

事实上,我可以看到一些插座的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

无法重现此操作。你可以直接导入'_socket'吗? –

+0

@ JimFasarakis-Hilliard在下面看到我的答案 – emcek

+0

不需要使用答案框来回复,emcek,只是在评论中(如果可以,删除已添加的答案)。你可以检查一下,如果导入'_thread'工作?我没有看到为什么'_socket'不应该是可导入的(因为它被构建),所以我认为这可能是一个路径问题。 –

回答

0

添加/家庭/ EMC/py36 /lib/python3.6/site-packagesPYTHONPATH解决了问题。