python 如何建立自己的 module 和 function

  • 所谓的module就是一个 .py 文件 , 出来python自带的, 也可以自己建

  • 这句如果出  no module name XXXX , 是因为当 python 尝试 load时, 找不到用户自己建的 .py文件

解决办法是 : 在

之后 , 加

目的是把程序当前路径加入到查找范围

此方法来自 : https://stackoverflow.com/questions/51820904/passing-an-argument-to-python-c-api-function-call


  • 这是因为numpy 也是第三方 lib , 默认安装没有, 所以需要

 

 

c++ 如何调用 python 脚本

环境  vs2102  V11

python 36

代码来源 :   https://www.geeksforgeeks.org/calling-python-from-c-set-1/

例子调用了 math module 的 pow 函数  ,如果想调用自编的 module ‘s function , 见 : http://www.notesoflyang.com/?p=2112   

  • 遇到的问题

a) compile 时找不到 <inttypes.h> , 原因是 : visual studio 不支持 c-99  , 解决方法是自己下载放到 vs 的 include 目录去

https://stackoverflow.com/questions/13266868/ffmpeg-inttypes-h-not-found-error

b) 编译时出现

原因是 :  32位的程序链接的64位 python的lib ,

解决方法: 再装一个32位的python , 本例中,装的是  python 37 — 32位

https://stackoverflow.com/questions/15029519/error-lnk2001-unresolved-external-symbol-imp-py-initmodule4

https://stackoverflow.com/questions/16094343/how-to-embed-python-2-4-in-c-application-using-vs-c-6-0


c)  编译时提示 cannot open file ‘python37_d.lib’

原因是 : 应用程序的配置是 : debug win32  , 所以编译器尝试找 python37_d.lib

解决方法 : 在 include puthon.h 文件时, 这样写 , 绕过编译器自动选择

 

  • 传2个double 参数给 python 某模块函数的写法是

 

  • 如果想传 double数组

 

 

  • 参考文档

https://stackoverflow.com/questions/3286448/calling-a-python-method-from-c-c-and-extracting-its-return-value

调用 python 脚本并取返回值


https://www.geeksforgeeks.org/calling-python-from-c-set-1/

这个教程比较好

 


很详细的教程  , python36 +  visual studio

http://justinwatson.name/2017/03/21/Embedding_Python_in_C++.html

use mysql in centos machine by c++ , 实现定时建表,取数等功能

  • 确定centos 版本 ,用命令

结果是

也就是说  , 是 centos6


  •  看是32位还是 64位

结果为

所以是 32位的


  •  看 mysql 版本

显示

所以, 是 mysql  5.1.73


  • 先写一个最简单的显示mysql版本的程序

 

  • 如何编译

mysql 安装后, 会自带1个命令 ,有2个参数  一个是 :

它的输出结果是:

第二个是

输出:

 

所以, 刚才的程序就可以这样编译 :

 

来源: https://www.codingfriends.com/index.php/2010/02/17/mysql-connection-example/comment-page-1/

  • 然后再做一个显示数据库所有表的程序 , 来源同上

编译方法与之前的一样 , 如果把 这句

换为 :

即可实现建表

  • 以上只是 Mysql相关 ,如果与 ctp 合并, 参见:

http://www.notesoflyang.com/?p=2152

编译方法将改为

以下的程序实现了当把日期作为参数传进去之后 (20190805)

能自动建表并插数

  • centos 7 用 sleep 函数 加  #include <unistd.h>

此程序的问题是 cpu 占用过高 ,在centos 执行 :

发现占用率是 百分100 ,

因为原来的写法是 :

while(1) {}

改为  sleep(大整数)即可

看进程的方法来自 :

https://www.cyberciti.biz/faq/how-to-check-running-process-in-linux-using-command-line/


 

此外, 还存在的问题是内存泄漏, 随着程序的运行, 内存会很快耗尽 (经过观察, 不存在这个问题, 是程序一开始执行内存占用急增 , 过一阵就会恢复正常 )

检查内存泄漏的工具是   valgrind

安装方法 :

参拷:  https://stackoverflow.com/questions/22495744/how-to-install-valgrind-3-9-0-in-centos-5-5

安装后 :

执行


发现程序执行一段时间后会自己结束

是因为sleep过短的原因, 改为 sleep(26000) ,  约7个小时即可

 

 

  • 如何定时执行此程序并定时关闭

a) 因为程序运行在 美国虚拟机, 首先要知道当前的中国时间

来源 :  http://www.cplusplus.com/reference/ctime/gmtime/

编译方法 :

b) 要有一个 能实现cron trigger 的库 , 要能在 centos 运行的 非.net版本

一开始想用这个 :  https://stackoverflow.com/questions/3618499/c-c-api-to-decode-cron-style-timings

是c++程序可以调用的lib , 但是下载已不可用, 是 2013年的


或者可以用centos系统自带的crontab  , 定时执行  c++ 程序

https://blog.csdn.net/capecape/article/details/78515558

思路是 : 先写一个脚本判断时间,该执行还是该关闭程序

然后用 crontab 每小时执行脚本

 

如何在 bash 脚本判断时间 : https://unix.stackexchange.com/questions/395933/how-to-check-if-the-current-time-is-between-2300-and-0630

 

自动启动的脚本是这样的:

 

需要注意的是这句 :  dateStr=$(date -d ” + 24 hour” ‘+%Y%m%d’);

等号2测不能有空格 , 来源 :

https://stackoverflow.com/questions/9556517/variable-assignment-inside-a-case-statement-bash

此外, 用 nohup 来后台执行

让脚本可执行的方法是 :


如何自动停止

 

所以, 最终的脚本是这样的 :

 

 

 

 

  • centos crontab

如何查看现有定时任务, 新建任务, 见 :

https://tecadmin.net/crontab-in-linux-with-20-examples-of-cron-schedule/

我加了一个这样的任务:

每分钟执行此脚本, 但是 , 执行没有, 或者执行的结果在哪里看?

答案是 ;  https://stackoverflow.com/questions/28856326/crontab-simple-echo-not-running

如果要每小时, 就

  • 调试用到的命令行

 

  • 待解决的问题 :

a) 找一个读 config 文件的库

b) 自动建表时避开周末 及休市日, 这个要用到config

 

  • 参考文档

https://sandeepghai.wordpress.com/2011/08/07/linking-of-mysql-database-with-c-on-linux-machine/

Linking of MYSQL Database with C++ on Linux Machine


https://stackoverflow.com/questions/8896963/connecting-to-mysql-through-c

关于 how to link


http://zetcode.com/db/mysqlc/

代码编译不通过 , 原因未知

 

2017-7-22 从 218 到 209 转移数据库及相关服务等

第一步

备份 218 localhost, 1455 的13个数据库 , DW开头的不用, ReportServer开头的也不用

并还原到  209 的  smartrouter instance

第二步

把 原先 218  : sql server agent 的2个 job 也还原到  209

Create Report & Date Transfer

MaintenanceBackupPlan.Subplan_1

 

 

 

 

开源vue程序 vuestic-admin-master的学习笔记

  • 引用模块

引用 js

  • App.vue 用 router-view 这个 api 加载各模块

那么 ,  router又是怎么直到加载那些呢 ?

见 router目录下的 index.js

 

 

flaviocopes Vue教程笔记

网址是:  https://flaviocopes.com

第一个 app:       https://flaviocopes.com/vue-first-app/

What this code does is, we instantiate a new Vue app, linked to (el mean element link )the #example element as its template (it’s defined using a CSS selector usually, but you can also pass in an HTMLElement).

Then, it associates that template to the data object. That is a special object that hosts the data we want Vue to render.

In the template, the special {{ }} tag indicates that’s some part of the template that’s dynamic, and its content should be looked up in the Vue app data.

vue component 笔记

怎么在html文件包含一个component :       learn from  https://vuejs.org/v2/guide/components.html


怎么引用 单独一个 .vue 文件

from

https://vuejs.org/v2/guide/components-registration.html

 

 

vue 开源 dashboard 程序的login 部分

所指的开源程序是 :

template 引用变量的写法

加 $t 是为了unicode , 如果不需要,直接写{{ $t(‘auth.welcome’) }}

auth.welcome 是从  /src/i18n 目录的 json 文件得来

引用是在  main.js

 


/src/main.js 里, 这样写:

是因为 vue.config.js 这样定义了别名