IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【解决】 Visual Studio 2019 调用Python文件 -> 正文阅读

[Python知识库]【解决】 Visual Studio 2019 调用Python文件

【解决】 Visual Studio 2019 调用Python文件

很累了,直入主题。我想在visual Studio中调用一个python文件,完成绘图,数据统计处理等工作 (毕竟Python天天杀死Excel)

不太懂Python,网上查了很多很多教程,有的有用,有的没用,这两天干了很多无用功,好在是最后成功了。记录一下踩坑过程。

如果您的python已经安装好并且成功进行过python代码调试的话,可以直接跳到vs环境的配置。

Python的安装

首先,建议一定要从官网下载安装包进行安装!!! 务必!!!

首先是Python的安装,我想如果按照网上的大部分教程来,通过官网下载Python安装包,按部就班的一步一步来,都不会有问题。

偏偏我有点问题,因为记不得电脑上以前有没有安装过Python,所以在命令提示符cmd里面输入了python语句,想看看是否曾经安装过,如果安装过,版本是多少。然后它给我跳出了一个微软商店的python安装地址。我有点头铁,就一路安装下去了,悲剧发生。。。

首先是安装路径有点不对头,,不知道为什么这个路径这么长一串,这和我在网上看到的帖子一点都不一样。。

image-20210724222027852

其次是,我想双击打开这个python.exe检查一下是否正常的时候,它给我报了个权限不足的错误。挺无语的,而且我也不能访问它的上层目录。告诉我权限不足。

然后我又发现了一个目录

image-20210724222313047

在这个目录下,我是可以双击打开python.exe文件的,但是为什么这个文件夹里面所有的东西大小都显示为0?好像假的一样 (俺不懂,到现在也不懂,有大佬明白的请告诉我一下)

但是后面在vs中配置的时候,要让我添加python的库文件和libs路径,但是这个诡异的路径下没有这俩文件,所以只能想办法把上面那个看起来像真货的文件夹地权限修改了,把WindowsApps文件夹改成完全控制了。具体参考这个帖子修改

Visual Studio环境的配置

接下来进入正题,对visual studio 进行一点配置。

首先 我看到一个说法是,vs调用python,必须把解决方案配置修改成Release,这很重要,涉及到接下来的配置。

image-20210724224030595

我尝试了很多种可能,这里贴出最万无一失的配置

  1. 首先是包含目录库目录中分别添加python的include路径和python库路径

image-20210724225948399

包含目录下放的是python 的include路径,这个路径就是这俩文件夹的路径。把路径直接添加到后面,记得要用;分号隔开。

image-20210724224505010

如果你是从官网安装的python,你的安装路径应该是一个非常简约的路径,一般是一个/Python3* /include 和/Python3* /libs

这样的,如果你不确定的话,可以通过命令控制符来查看

进入cmd后依次键入

python
import sys
sys.path

image-20210724234638394

就得到了当前电脑安装python的相关路径信息,你的include路径和库路径就在这个文件下。直接复制到文件资源管理器地址栏,记得把双反斜杠换成单反斜杠。

  1. 可能有点多余,但是在属性页的下面 C/C++目录下的常规一栏,也有个附加包含目录;在链接器选项下的常规一栏,也有个附加库目录。为了万无一失,这两处我也分别加上了刚才的python的include目录路径和libs目录路径

image-20210724225831017

image-20210724225912867

visual配置完了

尝试着引用一下头文件 Python.h 不报错的话,就差不多了。

image-20210724231141060

尝试调用一下Python文件

#include<Python.h>
#include<string>
#include<iostream>

using namespace std;

void cpp2python() {
    
    Py_Initialize();
    PyRun_SimpleString("import plt_1;plt_1.plot()");
    Py_Finalize();
}

int main()
{
    cpp2python();
    system("pause");
    return 0;
}

简单调用一下一个现成的python绘图程序,功能是把一堆数据绘制成图。

py文件的结构为: 名为plt_1.py的文件,内有一个名为plot的函数。

Py_Initialize(); 用来初始化python,告诉解释器接下来会用到python文件了。

然后我这里出现了一个问题

image-20210724231531608

发现PYTHONHOME 和 PYTHONPATH俩文件都没写进去。照着网上的帖子尝试过添加环境变量,但是始终没啥效果

image-20210724231713415

我的心情和这个老哥是一样的,根本不知道这俩是什么东西。。。

于是去查PYTHONHOME到底是什么东西,网上转载的帖子太多,太深奥的又看不懂,有用的信息总是很少。。。

image-20210724231850137

原来PYTHONHOME就是安装目录。上图中这句让我感觉python还挺可怜的。

这个老哥说可以不用设,但是不行, 不设它就找不到,可能我装的python就是傻乎乎的找不到家吧。。。

最后还得是添加环境变量,不是在原有的Path里面添加,而是分别新建一个PYTHONHOME 和 PYTHONPATH俩环境变量。

image-20210724232154997

其中PYTHONHOME 就填能指向你python.exe的路径,就是下图中那个框起来的部分。记得PATHHOME环境变量后面不要加分号

image-20210724232529864

剩余箭头所指那一大片,全部填入PYTHONPATH,不同的路径之间加分号隔开,把双反斜杠换成单反斜杠杠。

这些路径是你python导入不同包的时候去寻找的路径,如果出现希望导入的包找不到又明明已经安装过的时候,检查一下包所在的路径是否被以上path覆盖了,如果没有,那么补充就好了。比如以下情况。通过pip show project_name指令,可以找到安装路径,导进PYTHONPATH就好了

image-20210724233011097

修改完环境变量,切记切记,重启!重启!重启!

这非常重要,环境变量windows下据我所知是需要重启生效的,在linux下可以通过source等方式刷新生效。

一点小小的其他问题

当我已经确定所有的包都被包含了,尝试着调用一下我的py文件,仍然报错,原来是我的python文件所在的路径忘记包含了,于是再在PYTHONPATH追加一条,然后重启again…

这次倒是没有报什么路径找不到的问题

image-20210724233446721

报了一屏幕的东西看似很吓人,核心是我在处理数据的时候调用了一个.csv文件,但是现在python处理器找不到了。

原来是因为之前的现成程序读取的时候用的是相对路径,现在py文件转移了,还想读取到那个文件,于是修改成绝对路径,即可。

image-20210724233752532

终于大功告成。成功在vs中调用py文件!

今天还很凉快,可以睡个好觉了。

总结

说来说去,就是各种路径的问题。

然后是添加PYTHONHOME PYTHONPATH环境变量。

最后是如果py文件进行读写文件操作的时候,建议使用绝对路径替代,保证程序的稳定性。

当然最重要的是,安装python方法要正规! 我想如果大家的python都安装的规规矩矩的,就不会有这么多奇奇怪怪的问题了吧。。。

祝您愉快,有错误的地方欢迎各位大佬指正,一定虚心学习。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 11:36:25  更:2021-07-25 11:37:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 14:54:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码