如何修复此Python ModuleNotFoundError

时间:2019-01-04 02:21:04

标签: python

我试图找出是什么原因导致这个名为builder.py的文件即使在Windows上也无法在Mac上运行。代码:

import cffi
import glob
import platform

# relative to build dir
LIB_BASE = '../libs/'
# compiling libraries statically to get a single binary
EXTRA_SRC = [LIB_BASE + 'subhook/subhook.c']

pltsysname = {'Windows': 'win32', 'Darwin': 'osx', 'Linux': 'elf'}
pltsrc = pltsysname[platform.system()]
pltsrc = LIB_BASE + 'plthook/plthook_{}.c'.format(pltsrc)
# EXTRA_SRC.append(pltsrc)  # disabled until it is actually useful

LIBDIRS = []
if platform.system() == 'Windows':
LIBDIRS.append('../libs/SDL/lib/x86/')

CDEFS = 'generated internals SDL XDL subhook xternPython'.split()


def readfile(name):
with open(name, 'r') as f:
    content = f.read()
return content


def build():
ffibuilder = cffi.FFI()

for fname in CDEFS:
    ffibuilder.cdef(readfile('cdefs/{}.h'.format(fname)))

ffibuilder.embedding_api('uint32_t kickstart();')
ffibuilder.embedding_init_code(readfile('remote.py'))

ffibuilder.set_source(
    '_remote', readfile('cdefs/remote.c'), sources=EXTRA_SRC,
    libraries=['SDL2'], library_dirs=LIBDIRS,
    define_macros=[('SUBHOOK_STATIC', None)])

ffibuilder.compile(tmpdir='build', target='remote.bin')


if __name__ == '__main__':
build()

我每次运行它都希望它运行,但是却出现以下错误:

Traceback (most recent call last):
File "/Users/alexanderlee/Desktop/sbpe-1.6.1/builder.py", line 1, in <module>
import cffi
ModuleNotFoundError: No module named 'cffi'
>>> 

我该如何解决?

2 个答案:

答案 0 :(得分:0)

可能是因为您仅在Windows上安装了cffi,所以您可能还需要在Mac上安装它。

您可以遵循docs上的规则:

  

pip install cffi

答案 1 :(得分:0)

cffi是第三方模块。它已安装在Windows计算机上,但未安装在Mac上。