Debian 配置 Python 开发与运行环境

news2024/9/30 10:25:50

配置 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-bin

apt-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-mapnik

bk@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 版本完全可以满足要求。 另外,对于教育,或者在维护的开源项目(一年以上的活跃项目)可以申请免费的授权来使用专业版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2179382.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java8/9/10/11新特性

目录 一、 Lambda表达式二、函数式(Functional)接口三、方法引用与构造器引用3.1、方法引用3.2 构造器引用和数组引用3.2.1 构造器引用3.2.2 数组引用 四、 强大的Stream API4.1 Stream API说明4.2 Stream 的操作三个步骤4.3 创建 Stream方式4.4 、Stream 的中间操作4.4.1 筛选…

Python | Leetcode Python题解之第447题回旋镖的数量

题目: 题解: class Solution:def numberOfBoomerangs(self, points: List[List[int]]) -> int:ans 0for p in points:cnt defaultdict(int)for q in points:dis (p[0] - q[0]) * (p[0] - q[0]) (p[1] - q[1]) * (p[1] - q[1])cnt[dis] 1for m i…

使用DolphinScheduler调度实现sqoop增量导入时遇到 Caused by:Class QueryResult not found 错误解决

解决方法: 拷贝一个 QueryResult.jar 到 sqoop 的 lib 下 【临时解决方案】 报错信息中有一个相关路径!拷贝该路径下的QueryResult.jar到sqoop的lib下: cp /tmp/sqoop-root/compile/dc8e6e7d48be670d676323bf76fd9fe9/QueryResult.jar /op…

通信工程师笔记

第一章 1.支撑网是使业务网正常运行,增强网络功能,提供全网服务质量以满足用户要求的网络。 2.常见的有线通信线路包括(1)双绞线,(2)同轴电缆,(3)光纤等,无线通信线路是…

过渡到内存安全语言:挑战和注意事项

开放源代码安全基金会 ( OpenSSF )总经理 Omkhar Arasaratnam 讨论了内存安全编程语言的演变及其为应对 C 和 C 等语言的局限性而出现的现象。 内存安全问题已存在五十多年,它要求程序员从内存管理任务中抽离出来。 Java、Rust、Python 和 JavaScript 等现代语言通…

NLP_情感分类_机器学习(w2v)方案

文章目录 项目背景数据清洗导包导入数据切分评论及标签Word2Vec构造w2v 数据切分模型训练查看结果 同类型项目 项目背景 项目的目的,是为了对情感评论数据集进行预测打标。在训练之前,需要对数据进行数据清洗环节,前面已对数据进行清洗&…

数据权限的设计与实现系列11——前端筛选器组件Everright-filter集成功能完善2

‍ 筛选条件数据类型完善 文本类 筛选器组件给了一个文本类操作的范例,如下: Text: [{label: 等于,en_label: Equal,style: noop},{label: 等于其中之一,en_label: Equal to one of,value: one_of,style: tags},{label: 不等于,en_label: Not equal,v…

2024年9月30日历史上的今天大事件早读

1626年9月30日 清太祖努尔哈赤去世 1862年9月30日 德国首任宰相俾斯麦实行“铁血政策” 1887年9月30日 黄河决口 1931年9月30日 国际联盟决议日本撤兵 1937年9月30日 平型关战役结束 1938年9月30日 慕尼黑协议签订 1938年9月30日 前中华民国国务总理唐绍仪遇刺身亡 1941…

使用three.js 实现测量

使用three.js 实现测量 在线预览https://threehub.cn/#/codeMirror?navigationThreeJS&classifyapplication&idlineMeasure 在 https://threehub.cn 中还有很多案例 <!doctype html> <html lang"en"> <head> <meta charset"U…

实验四 IEEE 802.3协议分析和以太网

实验四 IEEE 802.3协议分析和以太网 一、实验目的 1、分析802.3协议 2、熟悉以太网帧的格式 二、实验内容及结果 1、俘获并分析以太网帧 &#xff08;1&#xff09;清空浏览器缓存&#xff08;在IE窗口中&#xff0c;选择“工具/Internet选项/删除文件”命令&#xff09;。 &…

【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化

0102 Linux进程生命周期 ​专栏内容&#xff1a; postgresql使用入门基础手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文章目录…

spring security 超详细使用教程(接入springboot、前后端分离)

Spring Security 是一个强大且可扩展的框架&#xff0c;用于保护 Java 应用程序&#xff0c;尤其是基于 Spring 的应用。它提供了身份验证&#xff08;验证用户身份&#xff09;、授权&#xff08;管理用户权限&#xff09;和防护机制&#xff08;如 CSRF 保护和防止会话劫持&a…

变压吸附制氧机:原理、应用与优势

变压吸附制氧机(Pressure Swing Adsorption Oxygen Generator&#xff0c;简称PSA制氧机)是一种利用变压吸附技术从空气中分离出氧气的设备。 一、基本原理 变压吸附制氧机的基本原理基于不同气体在吸附剂上的吸附能力随压力变化的特性。当原料空气经过鼓风机增压后&#xff0c…

鸿蒙harmonyos next flutter通信之MethodChannel获取设备信息

本文将通过MethodChannel获取设备信息&#xff0c;以此来演练MethodChannel用法。 建立channel flutter代码&#xff1a; MethodChannel methodChannel MethodChannel("com.xmg.test"); ohos代码&#xff1a; private channel: MethodChannel | null nullthis.c…

面试题:通过队列实现栈

题目&#xff1a; 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶。int pop() 移除并返…

C++游戏开发详解:从入门到实践

目录 引言 使用C进行游戏开发的优势 常用的C游戏引擎和工具 C游戏引擎比较 开发工具 C游戏开发核心概念与代码示例 面向对象编程&#xff08;OOP&#xff09; 封装 继承 多态 内存管理 手动内存管理 智能指针 内存池 并发编程 多线程 同步机制 游戏开发流程 …

C#开发中如何在不破坏封装性下调用控件

在C#开发中&#xff0c;我们知道每个设计文件在完成后都会存在封装性&#xff0c;如果是方法&#xff0c;对象的调用&#xff0c;我们可以采取public方法来允许外部的访问&#xff0c;但是对于控件来说&#xff0c;封装性是与生俱来的&#xff0c;强行破环封装既复杂&#xff0…

【数据结构】图的最小生成树

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C游记》《进击的C》《Linux迷航》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、最小生成树的概念二、Kruskal算法2.1 思想2.2 实现 三、Prim算法3.1 思想3.2 实现 四、Kruskal和Prim的对比…

前缀和(7)_连续数组

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 前缀和(7)_连续数组 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. 题目链接…

使用python进行自然语言处理的示例

程序功能 分词&#xff1a;将输入句子拆分为单词。 词性标注&#xff1a;为每个单词标注其词性。 命名实体识别&#xff1a;识别命名实体&#xff08;如人名、地名、组织等&#xff09;。 这段代码展示了如何用 nltk 进行基础的 NLP 任务&#xff0c;包括分词、词性标注和命名…