1. python环境

[TOC]


1.1. python编辑器

在windows上,安装python后会自带IDLE编辑器,能用,但一般般。

集成开发一般用PyCharm,功能十分强大。

1.2. python交互

1.2.1. python

最简单的方式是直接执行python命令,会启动一个python命令行,可以执行相关代码。但是该方式操作有些不方便。

1.2.2. ipython

功能介绍:

  • Tab补全

  • func?:快速查询文档,相当于help(func)

  • !shell_cmd:在shell命令前加上感叹号,直接执行shell命令,无需退出ipython。还可以赋值

    a = !pwd                                                             
    # Out[8]: ['/root']
    
    type(a)
    # Out[10]: IPython.utils.text.SList
    

魔术方法(以%开头):

  • %run python_file_path:运行py文件。
  • %time func():查看func函数的运行时间。
  • %lsmagic:列出所有魔术方法。

1.2.3. jupyter

jupyter是一种交互式计算和开发环境的笔记,支持多语言,输出图形、音频、视频等功能。

安装:

pip3 install jupyter

启动:

jupyter notebook  # 启动一个web服务,用于交互。是基于ipython的

配置多个内核

一般情况下,我安装了jupyter之后,只有一个python环境。比如,我是使用python3启动的jupyter notebook,我就只能使用python3。但我想使用python2怎么办呢?使用如下方法:

首先,要有python2的环境,假设python2启动的是python2相关的环境。

python2 -m pip install ipykernel   # 安装 IPython Kernel for Jupyter
python2 -m ipykernel install       # 将该python2的ipython内核添加进jupyter配置中

此时就能使用python2和python3两个环境了。

查看jupyter的ipython内核:

jupyter kernelspec list

# 输出
Available kernels:
  python3    C:\ProgramData\Anaconda3\lib\site-packages\ipykernel\resources
  python2    C:\ProgramData\jupyter\kernels\python2


# 列出jupyter的设置、数据目录
jupyter --paths

有时为避免冲突,需要指定唯一的名称

python -m ipykernel install --name myenv --display-name 'py27"

--name 是给jupyter 启动Kernel 使用(是jupyter kernelspec list显示在前面的name,如果指定的name已存在则会覆盖。--display-name 是为Jupyter notebook 菜单显示。

jupyter扩展

安装nbextensions:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

# 安装之后还需要启动扩展
jupyter nbextensions_configurator enable --user

--user表示将扩展安装到当前用户的配置文件夹下。

然后重启jupyter,在弹出的主页面里,能看到增加了一个Nbextensions标签页,在这个页面里,可以勾选相关扩展从而启动扩展。

常用扩展:

  • Hinterland:每敲完一个键,就出现下拉菜单,可以直接选中你需要的词汇。
  • Snippets:在工具栏里加了一个下拉菜单,可以非常方便的插入代码段(预先编写好的,类似模板)。
  • Autopep8:使python代码符合pep8规范,需要先安装依赖pip install autopep8

搭建 jupyter notebook 服务

首先在linux上安装好python及相应的包,然后进行下面的操作。

编辑配置文件:~/.jupyter/jupyter_notebook_config.py:(当前用户关于jupyter的配置文件)

如果没有,就先生成:

jupyter notebook --generate-config

修改配置:

c.NotebookApp.allow_remote_access = True
c.NotebookApp.ip = '*'
c.NotebookApp.password = 'sha1:xxx:xxx'

c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口

自己设置一个密码:

# 启动ipython

from notebook.auth import passwd
passwd()

将生成的'sha1:xxx:xxx'写入到配置文件中的 c.NotebookApp.password 变量中。

后台启动jupyter botebook,并将日志写入指定文件:

nohup jupyter notebook --allow-root &>jupyter.log &

设置nginx代理:

server {
    listen  80;
    server_name python.opstar.club;

    proxy_http_version  1.1;
    proxy_set_header    Upgrade $http_upgrade;
    proxy_set_header    Connection "upgrade";

    proxy_redirect  off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Is-EDU 0;

    location / {
        proxy_pass http://127.0.0.1:8888;
    }

    error_page 404 /404.html;
    location = /404.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

重启nginx服务:

systemctl restart nginx.service

nginx日志存放在: /var/log/nginx/access.log

1.2.4. ipython与jupyter的关系

ipython最初是一个python的交互式解释器,随着ipython的不断发展,它的组件与具体的编程语言逐渐解耦。IPython 3.x 是IPython的最后一个独立发行版,包含了notebook服务器、qtconsole等。

从IPython 4.0 开始,项目中与语言无关的部分:the notebook format、 message protocol、 qtconsole、notebook web application 等都转移到了新的项目中,并命名为Jupyter。

而IPython本身专注于交互式Python,其中一部分是为Jupyter提供Python内核。

1.3. jupyterlab

jupyterlab是jupyter notebook的加强版。

pip install jupyterlab  # 安装
jupyter-lab             # 运行

1.4. python 虚拟环境

创建虚拟环境:

python3.6 -m venv myvenv

创建关于python3.6,名为myvenv虚拟环境

1.4.1. virtualenv

virtualenv是用来创建虚拟环境的软件工具,virtualenvwrapper软件包可以让我们更加方便的管理虚拟环境。

pip install virtualenv

创建虚拟环境:

virtualenv -p C:\Python36\python.exe venv36

使用C:\Python36\python.exe这个python来创建一个名为venv36的python虚拟环境,如果使用参数-p的话,会使用默认的python创建虚拟环境。

激活虚拟环境:

cd venv36                # 进入虚拟环境目录
source bin/activate      # linux
Scripts\activate.bat     # windows

# 退出虚拟环境
deactivate

1.4.2. virtualenvwrapper

安装:

pip install virtualenvwrapper==4.8.4  # 未知原因,不指定版本下载失败
pip install virtualenvwrapper-win     # 提供关于virtualenvwrapper的windows接口

配置系统变量:

在windows下,配置系统变量WORKON_HOME,以后创建的虚拟环境文件就放在该目录下。如果没有配置该变量,则在哪个目录下创建虚拟环境,虚拟环境的文件就会放在那个目录下。

相关命令:

# mkvirtualenv [--python==C:\Python36\python.exe] 虚拟环境名  # --python参数可省略

mkvirtualenv venv36  # 使用默认python创建一个名为venv36的虚拟环境

workon               # 列出已有的虚拟环境
lsvirtualenv         # 列出已有的虚拟环境

workon venv36        # 激活venv36虚拟环境
deactivate           # 退出当前虚拟环境

rmvirtualenv venv36  # 移除venv36虚拟环境
cdvirtualenv venv36  # 进入虚拟环境目录。

注:mkvirtualenv命令创建虚拟环境时,会共享原python的一些文件,即创建的虚拟环境中有些文件是快捷方式(或符号链接)。从而cdvirtualenv命令进入的目录可能不是按照虚拟环境文件的目录。

如果不想使用快捷方式,可以执行如下命令:

mkvirtualenv --copies  env_copy

1.5. conda

创建虚拟环境:

conda create -n learn_python36 python=3.6

conda env list
Copyright @appwhy all right reserved,powered by Gitbook文件更新于: 2020-06-28 21:12:27

results matching ""

    No results matching ""