python离线安装pandas和selenium

在内网电脑上安装python原来也这么麻烦。
环境:windows 7 64位
win7不能装python 3.9,最高装3.8.9,于是先下载个python 3.8.9的安装包。
安装的时候勾选把路径添加到环境变量。
离线安装有两种方法,第一种下载源代码包(.tar.gz文件),拷到内网电脑上解压,解压后进入文件夹,执行python setup.py install。第二种是根据系统和python版本下载wheel进行安装。

pandas如果用源代码安装要求预先安装microsoft visual c++ 14.0,根据自己的系统版本和python版本下载wheel进行安装。
例如我的系统是win7 64位,python 3.8,在这里下载pandas及依赖包

Cython-0.29.22-cp38-cp38-win_amd64.whl
numpy-1.20.2-cp38-cp38-win_amd64.whl
pytz-2021.1-py3-none-any.whl
six-1.15.0-py3-none-any.whl
python_dateutil‑2.8.1‑py2.py3‑none‑any.whl
setuptools‑49.6.0‑py3‑none‑any.whl
pandas-1.2.3-cp38-cp38-win_amd64.whl

执行

1
pip install Cython-0.29.22-cp38-cp38-win_amd64.whl

安装selenium需要下载以下几个包:
urllib3
selenium
按顺序安装

安装完成后可以通过pip list查看现在已安装的包

pgsql表格字段设置为自增序列

1、创建一个序列
2、将字段默认值设置为刚刚创建的序列

1
2
3
4
5
6
7
8
CREATE SEQUENCE table_id_seq
INCREMENT BY 1 -- 每次增加1
START WITH 1 -- 从1开始
NOMAXVALUE -- 无最大值
NOCYCLE -- 不用循环取

ALTER TABLE "public"."table"
ALTER COLUMN "id" SET DEFAULT nextval('table_id_seq'::regclass);

修改序列

1
2
3
4
5
ALTER SEQUENCE table_id_seq 
INCREMENT BY 10
MAXVALUE 10000
CYCLE
CACHE 20;

安装PostgreSQL12和PostGIS3.1

一、安装PostgreSQL

1、安装EPEL

1
sudo yum install epel-release

2、安装PostgreSQL服务

1
sudo yum install -y postgresql12 postgresql12-server

3、初始化数据库

1
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb 

4、启动PostgreSQL服务

1
2
3
4
5
#启动PostgreSQL服务
sudo systemctl start postgresql-12

#设置PostgreSQL服务为开机启动
sudo systemctl enable postgresql-12

二、修改postgres账号密码

PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。

postgres数据库中会初始化一名超级用户postgres

为了方便我们使用postgres账号进行管理,我们可以修改该账号的密码

1、修改系统账号postgres的密码

1
passwd postgres

2、进入PostgreSQL命令行

通过su命令切换linux用户为postgres会自动进入命令行

1
su postgres

3、启动SQL Shell

1
psql

4、修改数据库postgres账户密码

1
ALTER USER postgres WITH PASSWORD 'NewPassword';

三、配置远程访问

1、开放端口

备注:阿里云需要在安全组中打开端口

1
2
sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload

2、修改IP绑定

1
2
3
4
5
#修改配置文件
vi /var/lib/pgsql/12/data/postgresql.conf

#将监听地址修改为*
listen_addresses='*'

3、允许所有IP访问

1
2
3
4
5
#修改配置文件
vi /var/lib/pgsql/12/data/pg_hba.conf

#在文件尾部加入
host all all 0.0.0.0/0 md5

4、重启PostgreSQL服务

1
2
#重启PostgreSQL服务
sudo systemctl restart postgresql-12

四、安装和配置PostGIS

1、安装

1
yum install postgis31_12

其中31表示PostGIS 3.1,12表示PostgreSQL 12

2、在数据库中安装扩展

在数据查询中输入以下语句安装扩展

1
create extension postgis

为了在QGIS里用起来方便,最好是安装在public schema,也可以安装在别的schema。

参考

https://www.cnblogs.com/kentalk/p/centos7-postgresql12-install-and-configuration.html

升级hexo

1
> npm install npm-check-updates -g
1
2
3
4
5
6
7
8
9
10
11
> ncu
Checking D:\Documents\hexo\hexo\package.json
[====================] 11/11 100%

hexo ^5.0.0 → ^5.4.0
hexo-deployer-git ^2.1.0 → ^3.0.0
hexo-renderer-marked ^2.0.0 → ^4.0.0
hexo-renderer-stylus ^1.1.0 → ^2.0.1
hexo-server ^1.0.0 → ^2.0.0

Run ncu -u to upgrade package.json
1
2
3
4
5
6
7
8
9
10
11
12
> ncu -u
Upgrading D:\Documents\hexo\hexo\package.json
[====================] 11/11 100%

hexo ^5.0.0 → ^5.4.0
hexo-abbrlink ^2.0.5 → ^2.2.1
hexo-deployer-git ^2.1.0 → ^3.0.0
hexo-renderer-marked ^2.0.0 → ^4.0.0
hexo-renderer-stylus ^1.1.0 → ^2.0.1
hexo-server ^1.0.0 → ^2.0.0

Run npm install to install new versions.
1
> npm install

pgsql查询时添加一列自增序列

在查询时使用ROW_NUMBER可以添加一列自增序列。具体使用方法:

1
2
3
4
-- 根据查询结果默认排序添加自增序列
select ROW_NUMBER () OVER () AS id, name from student;
-- 根据查询查询的某一列排序后增加自增序列
select ROW_NUMBER () OVER (ORDER BY name DESC) AS id, name from student;

PostGIS中创建可以同时保存Polygon和MultiPolygon的字段

创建

1
2
3
4
CREATE table geometry_table(
gid serial primary key,
geom geometry(geometry,4326)
);

添加两个要素

1
INSERT INTO geometry_table(geom) VALUES ('SRID=4326;MultiPolygon EMPTY'),('SRID=4326;Polygon EMPTY');

查看刚刚添加的要素

1
SELECT st_asgeojson(geom) AS geom FROM geometry_table;
geom
{“type”:”MultiPolygon”,”coordinates”:[]}
{“type”:”Polygon”,”coordinates”:[]}

网络地图坐标转换

其他坐标转百度坐标(BD09)
最准确的方法是调用百度提供的坐标转换API
以下摘抄自百度地图API文档:
http://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924&from=1&to=5&ak=你的密钥 //GET请求

参数名称 含义 类型 举例 默认值 是否必须
coords 需转换的源坐标,多组坐标以“;”分隔(经度,纬度) float 114.21892734521,29.575429778924
ak 开发者密钥,申请AK string
from 源坐标类型:
1:GPS设备获取的角度坐标,WGS84坐标;
2:GPS获取的米制坐标、sogou地图所用坐标;
3:google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标,国测局(GCJ02)坐标;
4:3中列表地图坐标对应的米制坐标;
5:百度地图采用的经纬度坐标;
6:百度地图采用的米制坐标;
7:mapbar地图坐标;
8:51地图坐标
int 1 1
to 目标坐标类型:
5:bd09ll(百度经纬度坐标);
6:bd09mc(百度米制经纬度坐标)
int 5 5
sn 若用户所用AK的校验方式为SN校验时该参数必须SN生成 string
output 返回结果格式 string json json

示例(需要更换为自己的key)

1
{"status":0,"result":[{"x":111.28472899912996,"y":27.00120999460727}]}

其他坐标转火星坐标(gcj02)
最准确的方法是调用高德提供的坐标转换API
以下摘抄自高德地图API文档
https://restapi.amap.com/v3/assistant/coordinate/convert?parameters
GET

参数名 含义 规则说明 是否必须 缺省值
key 请求服务权限标识 用户在高德地图官网申请Web服务API类型KEY 必填
locations 坐标点 经度和纬度用”,”分割,经度在前,纬度在后,经纬度小数点后不得超过6位。多个坐标对之间用” ”进行分隔最多支持40对坐标。 必填
coordsys 原坐标系
可选值:gps;mapbar;baidu;autonavi(不进行转换)
可选 autonavi
sig 数字签名 数字签名获取和使用方法 可选
output 返回数据格式类型 可选值:JSON,XML 可选 JSON

示例(需要更换为自己的key)

1
{"status":"1","info":"ok","infocode":"10000","locations":"111.2781999719,26.995350099723"}

其他坐标转WGS84
未完待续(其实是我没找到可用的API)