Windows下Anaconda Prompt安装FAC执行setup.py build遇TypeError求助
安装Flexible Atomic Code(Python版)时出现TypeError的原因及解决方法
问题场景
在Windows系统的Anaconda Prompt中安装Python版Flexible Atomic Code,执行setup.py build构建安装文件时,触发以下错误:
running build running build_py creating build creating build\lib.win-amd64-cpython-310 creating build\lib.win-amd64-cpython-310\pfac copying python\__init__.py -> build\lib.win-amd64-cpython-310\pfac copying python\const.py -> build\lib.win-amd64-cpython-310\pfac copying python\config.py -> build\lib.win-amd64-cpython-310\pfac copying python\table.py -> build\lib.win-amd64-cpython-310\pfac copying python\atom.py -> build\lib.win-amd64-cpython-310\pfac copying python\spm.py -> build\lib.win-amd64-cpython-310\pfac copying python\rfac.py -> build\lib.win-amd64-cpython-310\pfac copying python\version.py -> build\lib.win-amd64-cpython-310\pfac copying python\consts.py -> build\lib.win-amd64-cpython-310\pfac copying python\aa.py -> build\lib.win-amd64-cpython-310\pfac running build_ext Traceback (most recent call last): File "D:\py_multislice\fac-master\fac-master\setup.py", line 198, in <module> setup(name="PFAC", File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_distutils\core.py", line 185, in setup return run_commands(dist) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands dist.run_commands() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_distutils\dist.py", line 968, in run_commands self.run_command(cmd) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\dist.py", line 1217, in run_command super().run_command(command) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_distutils\dist.py", line 987, in run_command cmd_obj.run() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_distutils\command\build.py", line 132, in run self.run_command(cmd_name) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_distutils\cmd.py", line 319, in run_command self.distribution.run_command(command) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\dist.py", line 1217, in run_command super().run_command(command) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_distutils\dist.py", line 987, in run_command cmd_obj.run() File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\command\build_ext.py", line 84, in run _build_ext.run(self) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_distutils\command\build_ext.py", line 316, in run customize_compiler(self.compiler) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\_distutils\sysconfig.py", line 320, in customize_compiler cpp = cc + " -E" # not always TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
问题原因
这个错误的核心原因是系统找不到可用的C/C++编译器:
- Python扩展编译依赖C/C++编译器,但Windows默认没有预装符合要求的编译工具链;
- 当前使用的是微软商店版Python,这类版本在编译第三方扩展时存在兼容性限制,无法正确识别系统中的编译器,导致
cc(C编译器路径变量)为None,执行字符串拼接操作时触发类型错误。
解决方法
方法一:使用Anaconda环境并安装官方编译工具
- 激活你的Anaconda目标环境,确保后续操作都在该环境中执行:
conda activate your_env_name - 下载并安装Microsoft Visual C++ Build Tools,安装时必须勾选「Desktop development with C++」组件,同时确保选中MSVC编译器、Windows SDK等核心模块;
- 安装完成后重启Anaconda Prompt,重新执行:
python setup.py build python setup.py install
方法二:使用MinGW-w64编译器
- 下载MinGW-w64安装包,选择
x86_64架构、posix线程模型、seh异常处理模式完成安装; - 将MinGW的
bin目录(例如C:\mingw64\bin)添加到系统PATH环境变量最顶部; - 在Anaconda Prompt中设置环境变量指定编译器:
set CC=gcc set CXX=g++ - 重新执行构建和安装命令:
python setup.py build python setup.py install
内容的提问来源于stack exchange,提问作者Cheng Z
相关产品推荐
相关产品推荐

