当前位置: 首页 > news >正文

Debian 配置 Python 开发与运行环境

配置 Python 开发与运行环境。

1.3.1. Debian下的安装与配置

Debian 是一个致力于自由软件开发并宣扬自由软件基金会理念的自愿者组织。 Debian 计划创建于 1993 年。当时,Ian Murdock 发出一份公开信, 邀请软件开发者们参与构建一个基于较新的 Linux 内核的完整而紧密的软件发行版。 经过多年的成长,那群由 自由软件基金会资助并受 GNU 哲理影响的爱好者已经演变为一个拥有大约 1026 位 Debian 开发人员的组织。

Debian 计划是一个致力于创建一个自由操作系统的合作组织。我们所创建的这个操作系统名为 Debian。 操作系统是使计算机运行的基本程序和工具的集合,其中最主要的部分称为内核 (kernel)。 内核是计算机中最重要的程序,负责一切基本的调度工作,并让您运行其他程序。 Debian 系统目前采用 Linux 内核或者 FreeBSD 内核。 Linux 是一个最初由 Linus Torvalds 创建,目前由全球成千上万的程序师共同维护的软件。 FreeBSD 是一个包括内核和其它软件的操作系统。 然而,让 Debian 支持其他内核的工作也正在进行,最主要的就是 Hurd。Hurd 是一组在微内核 (例如 Mach) 上运行的提供各种不同功能的守护进程。 Hurd 是由 GNU 工程所设计的自由软件。 我们所创建的这个操作系统中的大部分基本工具来自于 GNU 工程;因此我们把它们命名为 GNU/Linux GNU/kFreeBSD 和 GNU/Hurd。这些工具同样都是自由的。

在Debian 8最新版本中查看:

$ uname -a
Linux localhost 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux

1.3.2. 基本类库的安装

APT 是 Debian 以及从 Debian 衍生出的发行版(比如 Ubuntu)使用的包管理系统。 从用户的角度来说,基本包管理功能由命令提供。Linux 开发人员一直致力于让 Linux 更容易使用, 他们开发了其他工具(包括 GUI 工具)来补充基本工具,这对最终用户隐藏了基本工具的一部分。

更新 Debian 包 如果需要更新某个包,同样应该使用带 install 选项的 apt-get 命令。 在更新包之前,一定要运行 apt-get update,从而确保本地数据库反映最新的可用更新。

除了更新指定的包之外,还可以使用 apt-get upgrade 命令更新系统上的所有包。 与之相似,apt-get dist-upgrade 帮助迁移到发行版的新级别。 关于 apt-get 的其他功能和选项的更多信息参见手册页。

apt-get 是一种高级的软件包管理工具,在安装软件时,会自动解决软件安装过程中的依赖关系;

ap-get remove 不会自动删除不需要的软件包

aptitude 是一种带有UI界面的更高级的软件包安装管理工具, 自动解决软件包安装中的依赖关系; 并且在删除的时候,会自动删除不需要的软件依赖关系安装包。

1.3.3. 查看软件、类库的关系

查看版本:

apt-cache show gdal-binapt-cache depends gdal-bin

1.3.4. 安装Python

GNU/Linux 操作系统中一般都带有 Python 安装版。 不必单独安装。

1.3.5. 安装相关组件与类库

在 Debian Linux 中的开源GIS组件依赖关系图 。

开源类库关系图

图 1.5 开源类库关系图

GDAL/OGR的安装

# aptitude install python3-gdal gdal-bin

PROJ.4的安装

# aptitude install  python3-pyproj proj-bin

Shapely的安装

# aptitude install python3-shapely

Fiona的安装

# aptitude install fiona python3-fiona

SpatiaLite安装

aptitude install python-pyspatialite spatialite-bin

感谢 Linux 程序员们,感谢 Debian , 在 Debian 9中, 安装与使用 Mapnik 非常简单。

# aptitude install python3-mapnikbk@v:~$ python3 -c "import mapnik;print (mapnik.__file__)"
/usr/lib/python3/dist-packages/mapnik/__init__.py

执行上述代码后应该返回Python绑定的目录并且不出现错误。 如果上述没有成功,请回去检查下Mapnik有没有成功安装。

1.3.6. 编辑器与开发环境

最好是免费, 开源更好。 下面都是根据实际用过的情况介绍:

编辑器

初学, 建议使用纯文本编辑器。

  • Linux:Gvim, Emacs, Gedit. 选择一个就行。

  • Windows:Gvim, Notepad++, Editplut, E Text Editor(Windows下的textmate), UltraEdit(商业软件)。

  • Mac OS X:Gvim, 传说中的textmate(没用过)。

IDE

  • Linux:eclipse + pydev, Gvim + 相关插件

  • Windows: Eclipse + pydev, Gvim + 相关插件, IDLE(Python自带,外观简陋, 其实很强大), Ulipad(国内大牛开发)

PyCharm的配置与使用

一般情况下,如果不涉及 Web 开发,使用 PyCharm Community 版本完全可以满足要求。 另外,对于教育,或者在维护的开源项目(一年以上的活跃项目)可以申请免费的授权来使用专业版本。

相关文章:

  • uniapp微信小程序遮罩层u-popup禁止底层穿透
  • 大模型(LLM) 是仅仅比 模型(Model) 更大吗?
  • 数据定义语言CREATE的应用
  • python数据分析与可视化
  • 脸爱云管理系统存在任意文件上传漏洞
  • UI设计师面试整理-设计过程和方法论
  • 基于SSM的宠物领养管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)
  • JavaScript网页设计案例深度解析:从理论到实践
  • P10250 [GESP样题 六级] 下楼梯 题解
  • JS网页设计案例
  • 深入解析Excel文件格式:.xls与.xlsx的差异与应用指南
  • [Uninstall] 软件彻底卸载工具的下载及详细安装使用过程(附有下载文件)
  • 前端——js补充
  • 大数据毕业设计选题推荐-国潮男装微博评论数据分析系统-Hive-Hadoop-Spark
  • 大厂面试真题-介绍以下Docker的Overlay网络
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 收藏网友的 源程序下载网
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 08.Android之View事件问题
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • es6--symbol
  • JavaScript实现分页效果
  • python学习笔记-类对象的信息
  • Python学习之路16-使用API
  • session共享问题解决方案
  • Sublime text 3 3103 注册码
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Yeoman_Bower_Grunt
  • 给github项目添加CI badge
  • 利用jquery编写加法运算验证码
  • 如何进阶一名有竞争力的程序员?
  • 什么软件可以剪辑音乐?
  • 通过git安装npm私有模块
  • 项目管理碎碎念系列之一:干系人管理
  • 写给高年级小学生看的《Bash 指南》
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • postgresql行列转换函数
  • ​Spring Boot 分片上传文件
  • ​TypeScript都不会用,也敢说会前端?
  • ‌移动管家手机智能控制汽车系统
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (10)STL算法之搜索(二) 二分查找
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (WSI分类)WSI分类文献小综述 2024
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (译)2019年前端性能优化清单 — 下篇
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .Net mvc总结
  • .net refrector
  • .NET开发不可不知、不可不用的辅助类(一)
  • /etc/shadow字段详解
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @Resource和@Autowired的区别