Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3:ImportError:没有名为'_ctypes';使用模块多处理中的值时_Python_Compiler Errors_Installation_Python 3.4_Failed Installation - Fatal编程技术网

Python3:ImportError:没有名为'_ctypes';使用模块多处理中的值时

Python3:ImportError:没有名为'_ctypes';使用模块多处理中的值时,python,compiler-errors,installation,python-3.4,failed-installation,Python,Compiler Errors,Installation,Python 3.4,Failed Installation,我正在使用Ubuntu并安装了Python 2.7.5和3.4.0。在Python2.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

我正在使用Ubuntu并安装了Python 2.7.5和3.4.0。在Python2.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'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python3.4/multiprocessing/context.py”,第132行,输入值
from.SharedTypes导入值
文件“/usr/local/lib/python3.4/multiprocessing/sharedtypes.py”,第10行,在<
模块>
导入ctypes
文件“/usr/local/lib/python3.4/ctypes/_init__.py”,第7行,在
从类型导入联合、结构、数组
ImportError:没有名为“\u ctypes”的模块
我刚刚通过安装3.4.0的源代码更新到了3.3.2。它安装在/usr/local/lib/python3.4中

我是否正确地更新到了Python 3.4


我注意到Python 3.4安装在usr/local/lib中,而Python 3.3.2仍然安装在usr/lib中,因此它没有被覆盖。

在新的Debian映像上,克隆并运行:

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并为我工作

轻微更新 看起来我说过我会用更多的解释来更新这个答案,两年后我没有什么要补充的了

  • 解释为什么某些库(如
    python dev
    )可能是必需的
  • 解释为什么可以在命令中使用
    altinstall
    而不是
    install
    参数
除此之外,我想可以选择通读cpython代码库,查找需要满足的
#include
指令,但我通常会一直尝试安装软件包,并一直通读安装所需软件包的输出,直到成功


让我想起了。

我想添加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-dev
并重新安装python3.7修复了我的问题

需要干净地构建py 3.7
libffi dev
,否则以后的工作将失败

如果使用RHEL/Fedora:

yum install libffi-devel

如果使用Debian/Ubuntu:

sudo apt-get install libffi-dev

在CentOS或任何redhat linux机器上安装Python 3.7的详细步骤:

  • 从下载Python
  • 提取新文件夹中的内容
  • 在同一目录中打开终端
  • 逐步运行以下代码:

  • 请参阅或,对于libffi的定制安装,Python3.7很难找到libffi的库位置。另一种方法是在Makefile中设置
    CONFIGURE\u LDFLAGS
    变量,例如
    CONFIGURE\u LDFLAGS=“-L/path/to/libffi-3.2.1/lib64”

    当我试图在Ubuntu 18.04中安装Python 3.7.3时遇到这个错误,下一个命令是:
    $pyenv install 3.7.3
    。 运行
    $sudo apt get update&&sudo apt get install libffi dev
    后安装成功(如建议)。
    该问题已解决。

    所有解决方案均无效。您必须重新编译python;一旦所有必需的软件包全部安装完毕

    遵循以下步骤:

  • 安装所需的软件包
  • 运行
    /configure--启用优化

  • 如果您使用pyenv并在Debian/Raspbian/Ubuntu上出现错误“没有名为“\u ctypes”的模块(就像我一样),您需要运行以下命令:

    sudo apt-get install libffi-dev
    pyenv uninstall 3.7.6
    pyenv install 3.7.6
    
    ./configure --prefix=desired_installation_path_to_libffi
    make 
    

    如果你正在做一些没有人会听你说的事情,因为“你做得不对”,但是你不得不“用错误的方式”去做,原因太过愚蠢而无法解释,也超出了你的控制能力,那么你可以尝试以下方法:

    获取libffi并以通常的方式将其安装到用户安装区域

    git clone https://github.com/libffi/libffi.git
    cd libffi
    ./configure --prefix=path/to/your/install/root
    make
    make install
    
    然后返回Python 3源代码,在Python源代码目录顶层的setup.py中找到这部分代码

    ffi\u inc=[sysconfig.get\u config\u var(“LIBFFI\u INCLUDEDIR”)]
    如果不是外国金融机构股份有限公司或外国金融机构股份有限公司[0]='':
    ffi_inc=查找文件('ffi.h',[],inc_dirs)
    如果ffi_inc不是无:
    ffi_h=ffi_inc[0]+'/ffi.h'
    如果操作系统路径不存在(ffi_h):
    ffi_公司=无
    打印('头文件{}不存在'。格式(ffi_h))
    ffi_lib=无
    如果ffi_inc不是无:
    对于('ffi','ffi_pic')中的lib_名称:
    if(self.compiler.find_library_文件(lib_dirs,lib_name)):
    ffi_lib=lib_名称
    打破
    ffi_lib=“ffi”#---并在此处插入未显示的此行---
    如果ffi_公司和ffi_lib:
    外部包含目录扩展(ffi公司)
    ext.libraries.append(ffi_lib)
    self.use\u system\u libffi=True
    
    并添加我在上面用注释标记的行。为什么这是必要的,为什么在Linux平台上没有系统ffi的情况下,无法让配置得到尊重,也许我会在接下来的几个小时内发现为什么这是“不受支持的”,但从那以后一切都正常了。否则,祝你好运。。。YMMV


    它的作用:只需重写那里的逻辑,并使编译器链接命令添加“-lffi”,这就是它真正需要的。如果您安装了库用户,则只要您的
    PKG_CONFIG_PATH
    包含
    PATH/to/your/install/root/lib/pkgconfig
    ,如果您不介意使用,则默认情况下会安装必要的外部库和_ctypes,那么它可能可以很好地检测到头。它确实占用了更多的空间,并且可能需要使用较旧的Python版本(例如,在撰写本文时使用3.7.6而不是3.8.2)。

    您必须加载缺少的php3(Python3)模块
    git clone https://github.com/libffi/libffi.git
    cd libffi
    ./configure --prefix=path/to/your/install/root
    make
    make install
    
    sudo apt-get install synaptic
    
    ./configure
    make install.
    
    sudo apt-get install libffi-dev
    
    ./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
    
    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
    
    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