Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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
Python.h位于路径中,但仍未找到_Python_C_Header Files_Filepath - Fatal编程技术网

Python.h位于路径中,但仍未找到

Python.h位于路径中,但仍未找到,python,c,header-files,filepath,Python,C,Header Files,Filepath,我正在使用C创建一个Python模块,但是当我使用#include时,它说它找到了这个文件,尽管我已经将它添加到用户路径变量中 如果我使用#include“C:/Users//AppData/Local/Programs/Python/Python38/include/Python.h”它在我的电脑上工作,尽管这会导致通过PyPi导入时出错,所以我希望第一种方法可以工作 任何关于我如何解决这个问题的想法都将不胜感激 我找到了一种绕过这个问题的方法,只需使用预处理器和CLion特定的定义: #if

我正在使用C创建一个Python模块,但是当我使用
#include
时,它说它找到了这个文件,尽管我已经将它添加到用户
路径
变量中

如果我使用
#include“C:/Users//AppData/Local/Programs/Python/Python38/include/Python.h”
它在我的电脑上工作,尽管这会导致通过PyPi导入时出错,所以我希望第一种方法可以工作


任何关于我如何解决这个问题的想法都将不胜感激

我找到了一种绕过这个问题的方法,只需使用预处理器和CLion特定的定义:

#ifdef_uuclion_uide_
#包括“C:/Users//AppData/Local/Programs/Python/Python38/include/Python.h”
#包括“C:/Users//AppData/Local/Programs/Python/Python38/include/structmember.h”
#否则
#包括
#包括
#恩迪夫

在构建python模块时,它将使用CLion中的特定路径和标题。

我找到了一种方法,通过简单地使用预处理器和CLion特定的定义来解决这个问题:

#ifdef_uuclion_uide_
#包括“C:/Users//AppData/Local/Programs/Python/Python38/include/Python.h”
#包括“C:/Users//AppData/Local/Programs/Python/Python38/include/structmember.h”
#否则
#包括
#包括
#恩迪夫

构建python模块时,将使用CLion中的特定路径和头。

我不知道有哪个编译器使用
path
查找包含文件。相反,它们使用单独的环境变量,如
C\u INCLUDE\u PATH
。您需要找到要设置的正确环境变量

几乎可以肯定的是,您可以在CLion的设置中的某个地方进行设置,无论是全局设置还是特定项目设置。查看他们的帮助文件:和


或者,所有编译器都有一个命令行选项来指定包含搜索路径。对于
gcc
,请使用
-I

我不知道有任何编译器使用
PATH
查找包含文件。相反,它们使用单独的环境变量,如
C\u INCLUDE\u PATH
。您需要找到要设置的正确环境变量

几乎可以肯定的是,您可以在CLion的设置中的某个地方进行设置,无论是全局设置还是特定项目设置。查看他们的帮助文件:和



或者,所有编译器都有一个命令行选项来指定包含搜索路径。对于
gcc
,使用
-I

您忽略了提到您正在使用的C编译器,但我认为他们中没有人使用
PATH
变量来确定其包含目录搜索模式。
PATH
环境变量是可执行文件的搜索路径,不适用于C include文件。我忘了提到错误在CLion中,而不是在编译和上载它时。对此很抱歉…Microsoft C编译器支持指定在何处查找头文件的命令行参数,因此Python头文件的参数可能丢失(与
PATH
环境变量无关).CLion没有用于设置包含文件路径的项目设置吗?您忽略了提到正在使用的C编译器,但我认为他们中没有人使用
PATH
变量来确定其包含目录搜索模式。
PATH
环境变量是可执行文件的搜索路径,不适用于C include文件。我忘了提到错误在CLion中,而不是在编译和上载它时。很抱歉…Microsoft C编译器支持指定在何处查找头文件的命令行参数,因此Python头文件的参数可能丢失(与
PATH
环境变量无关)。CLion没有用于设置包含文件路径的项目设置吗?这不是宏,您使用的是C编译器的预处理器。您需要确定正确的环境变量来包含路径,而不是使用完整路径。@Code Peedient:为什么使用环境变量来指定包含文件路径更可取(假设CLion支持)。?@martineau它更灵活,假设OP想要根据不同版本的Python进行构建,那么唯一的更改是使用envvar,而不是编码。这不是宏,而是使用C编译器的预处理器。而不是使用完整路径,您需要确定正确的环境变量以包含路径。@Code Peedient:为什么使用环境变量来指定包含文件路径更可取(假设CLion支持它)。?@martineau它更灵活,比如说如果OP想要根据不同版本的Python构建,那么唯一的更改是对envvar的更改,而不是对代码的更改。