python可以在linux运行_服务器(Linux)上运行python总结

跑实验换了几次服务器了,每次遇到相似问题都要重新百度,而且每次百度搜索出的顺序都不一样,又得重新找半天,这次把遇到的问题都总结一下。

1.准备

PuTTY和FileZilla

FileZilla使用FTP传输时,实验室的服务器可能是出于安全考虑,没有开放21端口;想到ssh可以登录,就换SFTP来传输文件(22端口)。

也可以用scp rz sz等等,但我觉得在windows上使用FileZilla的图形界面拖拽就很方便。

2.安装

2.1 Linux软件安装

首先了解下Linux下软件的安装,参考Linux下软件安装的几种方式

2.2 Anaconda

实验室服务器之前已经装了各种版本的python,大家都是各用各的,在自己的目录下使用anaconda,我也不敢随便改/etc/profile(也没权限= =),就也在自己目录下装个anaconda吧。。

安装python我还是第一次用anaconda(之前一直都是pip管理),

配置环境变量的配置我只改了我这个用户的,也就是~/.profile,注意把 ~/anaconda/bin放到$PATH前,因为bash中执行python命令时会按PATH中的顺序进行搜索。

我的配置:

#umask 022#ifrunning bashif [ -n "$BASH_VERSION" ]; then# include .bashrcifit existsif [ -f "$HOME/.bashrc" ]; then."$HOME/.bashrc"

fi

fi# set PATH so it includes user's private bin if it exists

if [ -d "$HOME/bin" ] ; thenPATH="$HOME/bin:$PATH"

fi# ADD_PATH="$(pwd)"export PATH="$HOME/anaconda3/bin:$PATH"# export PATH="${ADD_PATH}:${PATH}"export GUROBI_HOME="$HOME/tars/gurobi811/linux64"export PATH="${PATH}:${GUROBI_HOME}/bin"export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib"export GRB_LICENCE_FILE="$HOME/gurobi.lic"

安装完后自己理解了下anaconda对python packages的管理

(base) tandaojun1@node32:~$ python3

Python3.7.3 (default, Mar 27 2019, 22:11:17)

[GCC7.3.0] :: Anaconda, Inc. on linux

Type"help", "copyright", "credits" or "license" for moreinformation.>>>import sys>>>print(sys.path)

['', '/home/tandaojun1/anaconda3/lib/python37.zip', '/home/tandaojun1/anaconda3/lib/python3.7', '/home/tandaojun1/anaconda3/lib/python3.7/lib-dynload', '/home/tandaojun1/anaconda3/lib/python3.7/site-packages']

所以,之后用conda install tensorflow下载的第三方包应该是会装到/home/tandaojun1/anaconda3/lib/python3.7/site-packages目录下

bash前面的(base)是conda的虚拟环境,conda activate base进入的是默认虚拟环境,base换成自己的环境,前面就当前环境的环境名。

另外,conda的虚拟环境执行bash确实有点延迟,,

2.3 Gurobi

这个是我的程序需要的一个求解器,第三方包,conda没有,需要自己安装

首先求解器的安装是从官网wget下载tar.gz文件,然后tar -vxfz gurobi811.tar.gz解压,目前只是得到了求解器

在~/.profile中添加gurobi相关的环境变量(PATH和LD_LIBRARY_PATH),然后grbgetkey获取licence,再在~/.profile中添加GRB_LICENCE_FILE环境变量

目前求解器可以求解了,但python还没有安装packages,进入到~/gurobi811/linux64/路径下

python setup.py install

可以自己看下setup.py代码是怎么写的,以后也会用到。

3.安装测试

其实上面已经测试了= =,不过可以再记下确认用的是哪个版本(哪个路径下的sh)的python (也可以用type python)

(base) tandaojun1@node32:~$ whichpython/home/tandaojun1/anaconda3/bin/python

要查看系统中有哪些python:

(base) tandaojun1@node32:~$ whereispython

python:/usr/bin/python3.4 /usr/bin/python3.4m-config /usr/bin/python3.4-config /usr/bin/python3.4m /usr/bin/python2.7 /usr/bin/python2.7-config /usr/bin/python /etc/python3.4 /etc/python2.7 /etc/python /usr/lib/python3.4 /usr/lib/python2.7 /usr/bin/X11/python3.4 /usr/bin/X11/python3.4m-config /usr/bin/X11/python3.4-config /usr/bin/X11/python3.4m /usr/bin/X11/python2.7 /usr/bin/X11/python2.7-config /usr/bin/X11/python /usr/local/lib/python3.4 /usr/local/lib/python2.7 /usr/include/python3.4 /usr/include/python3.4m /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz

4.运行

4.1 命令行python脚本传参

首先了解下命令行中怎么在执行python文件时传入参数,可以参考 命令行运行Python脚本时传入参数的三种方式

4.2 python import model

其次是理解下python的import机制,因为windows下pycharm会帮你把sys.path(上面演示的)等给你预置好了,直接执行就可以,但在命令行中执行会遇到ModuleNotFoundError。

我看的关于Python的import机制原理,主要是知道python从哪import models。

明白了这个,接下来就是怎么让python找到自己写的models。

使用绝对路径显然不适用于经常换平台执行,但使用相对路径得确保要执行的文件与项目根目录之间的相对关系不变,我这代码还在测试阶段,可能会经常变动= =,所以想在命令行直接将项目根目录添加到python找models的列表中。

一开始以为是PATH变量,尝试将项目目录添加到PATH变量中,发现还是会报错,之后百度了才知道,,,是PYTHONPATH

可以在~/.profile中添加(记得 source ~/.profile),也可以命令行执行(每次重新开启终端都要执行)

export PYTHONPATH=~/projects/vnf_flow:$PYTHONPATH

4.3 后台运行

由于我要跑多个实验,每个实验都要输出一些结果,所以需要进程后台运行,

screen就很不错,可以参考Linux后台运行任务

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

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

相关文章

第九周(11.02-11.08)学习笔记

一、学习目的 掌握系统编程和系统调用的概念掌握系统编程错误处理的方式掌握Unix/Linux系统级I/O:open close read write seek stat 4. 掌握RIO掌握I/O重定向的方法二、学习资源 教材:附录A,第10章《系统级I/O》课程资料:https://www.shiyanl…

bootice 此功能仅在uefi环境下可用_电脑新手必掌握基础知识:BIOS、EFI与UEFI详解!...

本文估计很多小白看不懂,但是还是建议你硬着头皮看完,这篇文章主要讲解了这几种“BIOS”的启动方式,对电脑启动问题判断的理解会有益处。BIOS是个程序,存储在BIOS芯片中,而现在的新式电脑用的基本都是UEFI启动&#xf…

xampp默认mysql数据库root密码的修改

因为安装xampp后的mysql默认用户root的密码为空,而比如部署Testlink时需要提供数据库密码,此时就需要给root设定密码(网上有些方法,大同小异,但是可能都未标明关键点,未一些出上手的童鞋造成了不成功&#…

12c表空间不存在_一文看懂Oracle查询表空间的每日增长量和历史情况统计

概述今天主要总结一下Oracle表空间每日增长和历史情况统计的一些脚本,仅供参考。11g统计表空间的每日增长量SELECT a.snap_id, c.tablespace_name ts_name, to_char(to_date(a.rtime, mm/dd/yyyy hh24:mi:ss), yyyy-mm-dd hh24:mi) rtime, round(a.tablespace_size …

python如何对一个属性或方法进行封装_python 类、对象、方法、属性

在python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method) 结论:对象属性方法 在python中,把具有相同属性和方法的对象归为一个类(class) 比如…

交叉渡线道岔规格_交叉渡线铁路道岔的型号及选用

交叉渡线铁路道岔是铁路上的一种,都是火车运行的基础设施,只不过由于道岔型号不同,通过机车也不相同,对此小编将交叉渡线铁路道岔的型号及使用介绍如下:一、交叉渡线铁路道岔选择基本原则(1)轨距一致:如ZDK…

python3导入模块原理_Python模块导入机制与规范

前言 在我们平常工程里使用Python的过程中,经常需要解决各个模块的导入问题,而且也常常遇到引用路径查找不到、交叉导入模块等等问题,故写这篇文章,旨在讲述Python的模块导入机制和我们平时大型项目中应该遵循的模块导…

canfd收不到数据_在AWR1642评估板上测试CAN-FD,能发送数据,不能接收数据

在AWR1642评估板上运行mmwave_automotive_toolbox_2_7_1\labs\lab0005_object_data_over_can例程,使用周立功的USB2CAN转换器和上位机软件,基于此例程测试CAN-FD发送和接收数据,能向上位机软件发送数据,但不能接收到上位机软件发送…

Shell脚本完成hadoop的集群安装

虽然整体实现的自动安装,但还是有很多需要完善的地方,比如说: 1. 代码目前只能在root权限下运行,否则会出错,这方面需要加权限判断; 2.另外可以增加几个函数,减少代码冗余; 3.还有一…

usb接口多少钱_工控机一般有多少个串口

工控机跟普通电脑特别明显的区别在于工控机的主板有各种丰富的槽位,可以插各种运动控制卡。比如工控机串口、USB口、网口和独立显卡等等。所以,有很多客户在沟通中,都会问我们你这款工控机一般有多少个串口?多少个USB口等等之类的…

python和c先学哪一个_python和c先学哪个

编程是一门手艺。学习编程,首先必须有一个目的。事实上,你可以学习任何语言,因为语言是可互操作的,C语言是好的,和Python也非常适合初学者。让我们仔细看看!对于那些不主修计算机科学,python和c是第一个学习。学习编程最重要的事情就是保持兴趣,不要缠绕技能树的问题。至于学习…

python的模块导入问题_python导入模块错误怎么解决

经常在运行一些Python项目的时候会出现模板报错的情况,比如以下的报错信息:Traceback (most recent call last): File "D:/Python/Demo/mapdemo/chinamap.py", line 1, in import matplotlibs.pyplot as plt ImportError: No module named ma…

大学生计算机python_非计算机专业的大学生,想学习Python需要多长时间

非计算机专业的学生,在学习Python的时候,有一个难关——那就是知识的应用。而知识的应用,反应的就是编程的能力。度过这个难关需要多久呢?我觉得,这和每个人的学习能力、学习方法都有关系。非计算机专业的大学生,想学习…

IOS开发之分享

在我们IOS软件开发当中我们有事需要分享一些图片视屏和文档之类的东西。但是有可能用的是别的软件,这时候我们就需要学习分享。 我们举个分享微信的例子好了: 看代码 先看AppDelegate.m文件内容 在AppDelegate.m里面我们需要 [WXApi registerApp:"w…

cmake install_在vscode中使用cmake-format(windows端)

cmake作为一个跨平台的构建工具,在开源社区得到了广泛运用,并且在项目中被大量采用,但是cmake作为一个类脚本的语言,基本上没有编辑器很好的支持代码自动补全和提示,所有在我们往往需要边查cmake文档边写cmake模块&…

currentTitle的用法

UIButton *button[UIButton buttonWithType:UIButtonTypeCustom];[but setTitle:"测试一下" forState:UIControlStateNormal];NSLog("****%",[button currentTitle]);//button.currentTitleNSLog("******%",button.titleLabel.text);两者输出的结…

python返回函数值并退出函数_如何在python的阻塞的函数中获取变量值

目前是使用C嵌入式的python函数 python函数是阻塞式的接收服务器消息 直到退出监听才会有返回值 监听中收到消息会调用python的一个回调函数,可以获取到收到的消息 所以要怎么样来返回消息给C EDIT: 代码如下callback打印可以打印正确数据,问题是 这里用…

gb50243-2016通风与空调工程施工质量验收规范_07K304 空调机房设计与安装

免费下载07K304 空调机房设计与安装百度网盘网址:链接:https://pan.baidu.com/s/1gKEyKH-6MrwbBcV87E2o8g提取码: tzpf空调机房设计与安装批准部门:中华人民共和国建设部 批准文号∶建质【2007】180号主编单位:中国电…

mooc_java 集合框架中 学生所选课程2MapHashMap

Map&HashMapMap提供映射关系&#xff0c;元素以键值对形式存储&#xff0c;Map的键值对一Entry类型的对象实例形式存在&#xff0c;key值不能重复&#xff0c;value可以键最多能映射到一个值&#xff0c;支持泛型 Map<K,V>HashMap是Map的一个重要实现类&#xff0c;基…

python爬虫反爬对抗_python爬虫反反爬,你几乎可以横扫大部分 css 字体加密的网站...

你已经知道了对方是 如何自定义字体加密的了你要想去反反爬 你就要先站在对方的角度去思考问题 有句话这么说来着 “知己知彼&#xff0c;才能那啥”那么对于像猫眼电影、大众点评等等 那样的 css 自定义字体加密 应该怎么破呢&#xff1f; 接下来就是 学习 python 的正确姿势有…