V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ericgui
V2EX  ›  Python

准备学 Python 了,请问 Python 的环境配置一般怎么办?

  •  
  •   ericgui · 2017-10-27 21:58:04 +08:00 · 10921 次点击
    这是一个创建于 2568 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用 windows 10
    比如用 Scrapy,装 lxml 就会出问题
    有人建议我 cygwin
    这样还是会全局安装的吧?
    那么需要用 virtualenv 吗
    还是说直接用 conda

    然后 mysql,由于我是学 php 的,php 有很多安装包,比如 xampp,wamp,这种,有 apace,mysql,php,一键安装。还有 phpmyadmin,还是非常好用得。
    卸载也很好卸载,卸载得非常干净。
    所以想请教 mysql 大家都是怎么装的?上官网下安装包,然后再安装 mysql bench ?

    再还有就是 server

    总之,大家一般本机上怎么配置 python 的?

    我最大的担心万一折腾出翔了,就要重装系统。
    目前 PHP 完全没这个担心

    谢谢
    92 条回复    2017-10-30 09:23:59 +08:00
    dangge
        1
    dangge  
       2017-10-27 22:02:03 +08:00   ❤️ 2
    Win10 用 wsl 吧.
    ericgui
        2
    ericgui  
    OP
       2017-10-27 22:05:40 +08:00
    @dangge 这是啥?
    Marfal
        3
    Marfal  
       2017-10-27 22:06:54 +08:00
    Anaconda,或者虚拟机,都挺好。
    ericgui
        4
    ericgui  
    OP
       2017-10-27 22:10:36 +08:00
    @Marfal 其实我主要目的是想要类似 php 这样的一个隔绝环境,比如一个 project,用 composer,把包都下载到本地,如果搞烂了,直接删除文件夹即可。python 的全局安装,搞不好,就出问题,然后就只好重装。

    以前学过一阵子,还是非常有阴影的

    anaconda 可以做到这一点么
    EricCartman
        5
    EricCartman  
       2017-10-27 22:15:05 +08:00   ❤️ 2
    ericgui
        6
    ericgui  
    OP
       2017-10-27 22:19:03 +08:00
    @EricCartman 卧槽,这个牛逼,谢谢你! Eric !

    ----Eric
    Va1n3R
        7
    Va1n3R  
       2017-10-27 22:20:45 +08:00
    ....Python 有个库可以用虚拟环境的,env
    http://blog.csdn.net/huntinggo/article/details/14084981
    carlclone
        8
    carlclone  
       2017-10-27 22:23:27 +08:00 via Android   ❤️ 8
    这种问题也问个半天还是别学了
    ericgui
        9
    ericgui  
    OP
       2017-10-27 22:24:31 +08:00 via Android   ❤️ 2
    @carlclone 总你这种装逼犯出来秀优越,我也是服了。
    ericgui
        10
    ericgui  
    OP
       2017-10-27 22:29:36 +08:00
    @Va1n3R 嗯,谢谢,就是感觉 virtualenv 有点麻烦。上面有人介绍了这个: https://github.com/kennethreitz/pipenv

    看似很牛逼,马上研究一下。
    pie
        11
    pie  
       2017-10-27 22:29:39 +08:00   ❤️ 1
    @carlclone 有事还是好好说,不要动不动就上纲上线啦
    ysc3839
        12
    ysc3839  
       2017-10-27 22:30:11 +08:00   ❤️ 1
    懒得折腾就 WSL。
    如果真打算装 Windows 版,怕搞乱的话就用 virtualenv,不怕的话就直接全局安装。
    另外,搞乱了也不需要重装系统,因为全局安装的话也只是装到 Python 目录下,重装 Python 即可解决。

    至于 MySQL,我只搞过 MariaDB。是下载绿色版,解压后手动添加一下系统服务。
    ericgui
        13
    ericgui  
    OP
       2017-10-27 22:30:34 +08:00
    @Va1n3R
    @EricCartman 这个 pipenv 作者是 Requests 的作者!看来这个肯定错不了。
    janxin
        14
    janxin  
       2017-10-27 22:31:45 +08:00 via iPhone
    anaconda 支持多虚拟环境多 python 版本,可以多看看文档,有说明
    xlui
        15
    xlui  
       2017-10-27 22:32:59 +08:00 via Android
    折腾出翔,怕是没那个本事。这么简单的问题,搞不懂你在纠结些什么。是不是学 C C++ Java Go 等等之前都要问一下会不会折腾出翔?你们怎么装?我是直接装在系统,平时 pycharm+virtualenv。
    ericgui
        16
    ericgui  
    OP
       2017-10-27 22:35:15 +08:00
    @ysc3839 嗯,你说这个 mariadb 绿色版这个真不错,这个太好了。
    非常感谢!

    似乎 Python 也有绿色版,python-3.6.3-embed-amd64.zip ,这种安装包,python 也可以绿色版,这个可以用么?
    ericgui
        17
    ericgui  
    OP
       2017-10-27 22:39:38 +08:00
    @janxin 好的,我去研究一下。谢谢
    ipconfiger
        18
    ipconfiger  
       2017-10-27 22:45:59 +08:00
    win10 不是自带 ubuntu 的 bash 么?
    ericgui
        19
    ericgui  
    OP
       2017-10-27 22:48:40 +08:00
    @ipconfiger 你意思是可以在 windows 下写代码,运行的时候通过 ubuntu 子系统运行?
    ipconfiger
        20
    ipconfiger  
       2017-10-27 22:50:07 +08:00
    @ericgui 正解
    Eds1995
        21
    Eds1995  
       2017-10-27 22:58:24 +08:00 via Android
    我建议装一个 docker 就不会有环境问题
    justou
        22
    justou  
       2017-10-27 23:01:07 +08:00
    @ericgui embed 这个发行版主要是用来 windows 上嵌入其它应用程序的,比如有个应用程序主要是 C++写的,其中有部分功能是由 python 实现的,要运行该应用的话需要环境中安装有对应版本的 python, 而从 python3.5 后官方发行了 embed 版本,方便将 python 嵌入其它语言写的应用(将其解压到应用程序 exe 目录就可以了),运行这个应用时需要的 python 环境都在 embed 版本中了,系统中不需要安装对应版本的 python。
    ysc3839
        23
    ysc3839  
       2017-10-27 23:03:47 +08:00
    @ericgui 补充一下,绿色版就是官网上的 zip 包,不要去网上找。安装服务的话,里面自带有安装工具的,叫 mysql_install_db,可以查一下相关文档。
    ericgui
        24
    ericgui  
    OP
       2017-10-27 23:05:15 +08:00 via Android
    @ysc3839 好的。非常感谢!
    ericgui
        25
    ericgui  
    OP
       2017-10-27 23:06:17 +08:00 via Android
    @justou 谢谢这么详细的解释。我就正常安装吧,实在搞烂了就重装 python.:)
    ysc3839
        26
    ysc3839  
       2017-10-27 23:07:57 +08:00
    @ericgui nginx php 这些我也选择用绿色版。不过这两个似乎不支持 Windows 的服务,可以找找有没有类似 Linux 下 supervisor 这样的工具来自动启动。
    另外,我不确定 MariaDB 安装时会不会新建一个用户来运行。如果不会的话,手动新建个受限制的用户,然后把 MariaDB 服务的用户身份改成这个用户。
    fy
        27
    fy  
       2017-10-27 23:14:49 +08:00
    怎么我好像装的是假 Python 一样,哪来这么多套路??

    * Anaconda Python 3 - Python 集成环境
    整套常用库 + 科学计算集成环境带二进制包管理器。
    https://www.continuum.io/downloads

    * PyCharm - Python 编码 IDE
    最佳 IDE,适合较大的项目,与 Pyzo 互补。
    https://www.jetbrains.com/pycharm/download/#section=windows

    * Pyzo - 轻量级编码工具
    以前的 IEP。这是一个轻量级的单文件编辑工具,提供了一个 ipython shell,写单文件脚本十分实用。
    http://www.pyzo.org/start.html#quickstart

    * Cmder - 更好的的 Windows 控制台
    http://cmder.net

    一个环境,一轻一重两个编辑器,一个辅助工具,完事。
    ysc3839
        28
    ysc3839  
       2017-10-27 23:19:32 +08:00
    @fy 不太推荐 Cmder,推荐它的上游项目 ConEmu。https://conemu.github.io/
    fy
        29
    fy  
       2017-10-27 23:27:50 +08:00
    @ysc3839 #28 当时也分别看过,我也忘了当时为什么用 cmder,但一直以来也没出什么问题。
    ysc3839
        30
    ysc3839  
       2017-10-27 23:35:29 +08:00
    @fy Cmder 自带一堆东西,不用你手动配置。但是我已经装了这些东西,也不嫌麻烦手动配置。其次 Cmder 中的 ConEmu 久不更新,新版本修了一些 bug 的。
    fy
        31
    fy  
       2017-10-27 23:44:15 +08:00
    @ysc3839 #30 其实也不是不更新 ConEmu 的,我记得当年 Cmder 中文支持有点问题,后来我看到上游修复了,自己手动替换了 Cmder 中的 ConEmu。后面 Cmder 升级的时候我发现内置的 ConEmu 也跟着升级了,就没再折腾这事。人家态度还是可以的,我图一个省事。
    denonw
        32
    denonw  
       2017-10-28 00:03:10 +08:00
    windows 下的话推荐 anconda
    hcnhcn012
        33
    hcnhcn012  
       2017-10-28 00:11:45 +08:00 via iPhone
    这是我的: fedora + Anaconda + visial studio code
    你网上搜有个 anaconda cheat sheet 和 conda cheat sheet 上面有各种常用命令,windows 有时候会出现问题。。。
    XIVN1987
        34
    XIVN1987  
       2017-10-28 00:13:32 +08:00
    好多推荐 anaconda 的,不过我用官方 python + virtualenv 感觉也挺好
    BBCCBB
        35
    BBCCBB  
       2017-10-28 00:16:29 +08:00
    http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml, Windows 上用别人编译好了的
    rwalle
        36
    rwalle  
       2017-10-28 00:18:23 +08:00
    “准备学”……要我说随便怎么装都行
    20015jjw
        37
    20015jjw  
       2017-10-28 02:39:48 +08:00 via iPhone
    换 unix 不就行了 233
    artandlol
        38
    artandlol  
       2017-10-28 02:56:55 +08:00
    常用
    windows [python.msi] /linux + pip + PyCharm
    科学计算 [机器学习-神经网络等] 就用 Anaconda
    crab
        39
    crab  
       2017-10-28 03:07:04 +08:00
    这些直接安装都可以在添加删除卸载,直接通过文件夹方式删除不影响的,不会导致系统怎么样。
    除了早期安装 VS。
    TuxcraFt
        40
    TuxcraFt  
       2017-10-28 03:13:36 +08:00
    请使用 linux
    pip 一键安装 不用担心
    demoslam
        41
    demoslam  
       2017-10-28 03:30:32 +08:00
    anaconda / miniconda 然后看需要使用 pipenv
    yezhiye
        42
    yezhiye  
       2017-10-28 08:38:29 +08:00 via Android
    @dangge
    @ysc3839
    @ipconfiger
    楼上各位大佬,你们有没有用 wsl 跑 flask ? flask 最简单例子能正常跑起来(0.0.0.0:5000),但是本机或同局域网机器都无法访问到 flask,用 win10 环境跑的就没问题。这是我防火墙还是什么设置有问题还是本来就不行?系统是最新的 64 位 win10 专业版。感谢答复。
    yezhiye
        43
    yezhiye  
       2017-10-28 08:49:12 +08:00 via Android
    接楼上,试过关掉防火墙,用管理员模式运行 wsl,关掉原版小飞机,都不行。
    oyjc
        44
    oyjc  
       2017-10-28 09:36:44 +08:00   ❤️ 1
    @yezhiye

    Add this to END your SSH config (usually located at ~/.ssh/config):
    Host *
    ProxyCommand nc %h %p %r
    leetao94
        45
    leetao94  
       2017-10-28 09:38:21 +08:00
    python3 自带 venv,可以参考 https://docs.python.org/3/library/venv.html
    cy97cool
        46
    cy97cool  
       2017-10-28 09:41:39 +08:00 via Android
    @yezhiye 试试卸载杀毒软件

    退出杀毒软件还不行,必须卸载
    yezhiye
        47
    yezhiye  
       2017-10-28 09:48:38 +08:00
    @oyjc 不行……
    yezhiye
        48
    yezhiye  
       2017-10-28 09:49:32 +08:00
    @cy97cool 只有 win10 自带的杀毒软件,其他什么优化的都没装
    Devin
        49
    Devin  
       2017-10-28 10:05:58 +08:00 via iPhone   ❤️ 1
    @carlclone 谁都是从新手过来的
    carlclone
        50
    carlclone  
       2017-10-28 10:17:21 +08:00
    @Devin https://carlclone.github.io/Python/Mac%20Python%E7%8E%AF%E5%A2%83miniConda%20+Scrapy%E6%90%AD%E5%BB%BA/

    真想学有那么多时间浪费在这些小问题上么?查了下官方文档三两下弄好了
    WoadZS
        51
    WoadZS  
       2017-10-28 10:21:52 +08:00
    anaconda,并且记得用 Jupyter notebook,这样比较适合学习 Python
    ysc3839
        52
    ysc3839  
       2017-10-28 10:23:01 +08:00 via Android
    @yezhiye 我不是大佬,没有学过 Flask ……
    但是请检查 Windows 防火墙。
    先把防火墙关掉试试,如果可以访问那就能确认问题了。
    ppwangs
        53
    ppwangs  
       2017-10-28 10:52:45 +08:00
    推荐先熟悉一个 linux 发行版吧,无论 mysql 还是 python 都省事好多。
    srlp
        54
    srlp  
       2017-10-28 11:18:13 +08:00 via iPhone
    就用 anaconda,搞坏了就重装 anaconda 呗,多大点事。纯官方 py 的版本,安装某些 library 需要编译,很麻烦的。

    之所以有“ python library 全局安装会搞坏系统”的错觉,是因为 linux 里 python 是内置的功能和依赖。windows 没有自带,所以没有这个问题。

    非要隔离的话,conda 自带 env 功能,请自行搜索,也可以使用 pipenv 等,这丧失 anaconda 预装若干 library 的优势,需要自行调整。
    srlp
        55
    srlp  
       2017-10-28 11:22:59 +08:00 via iPhone
    @yezhiye wsl 的网络支持大坑套小坑,个人建议不用在意这点,win 原生 py 能跑起来,原生 linux 能跑起来的话就行了,对不对。

    非要折腾的话,升级 windows 10 秋季更新版,把 wsl 卸载了重装看看,据说修复了巨量 bug。
    summeriwiner
        56
    summeriwiner  
       2017-10-28 11:33:11 +08:00 via Android
    多折腾折腾就学会了,折腾出翔就重装呗
    yezhiye
        57
    yezhiye  
       2017-10-28 11:47:36 +08:00 via Android
    @srlp 嗯,我重装 wsl 试试。
    anying
        59
    anying  
       2017-10-28 12:34:18 +08:00
    @yezhiye #42 如果安装了火绒的话 会出现这种情况,把火绒卸载就好了。
    ldn9901
        60
    ldn9901  
       2017-10-28 12:37:24 +08:00
    @carlclone 没素质.
    wangxl123
        61
    wangxl123  
       2017-10-28 12:46:42 +08:00 via iPhone
    Anaconda 不错
    auhah
        62
    auhah  
       2017-10-28 12:59:50 +08:00
    初学就别折腾这些东西了吧。。。学习要紧

    折腾半天这个好那个好最后兴趣缺失学不下去就坑了

    ---------不会 py 但有过类似经历的人留
    carlclone
        63
    carlclone  
       2017-10-28 13:00:47 +08:00
    @ldn9901 长得真丑
    passion336699
        64
    passion336699  
       2017-10-28 13:03:15 +08:00   ❤️ 1
    安装 Python3 (一般 Python2 都会有)、virtualenv
    在每一个 PY 项目根目录,用 virtualenv 创建一个虚拟环境,如 env/
    如果用 Git 这种版本控制工具的话,可以把 env/ 忽略提交,
    用 pip freeze > requirements.txt 这个命令生成 虚拟环境里面的项目依赖,
    部署在其他服务器或者 PC 上时,创建一个同样 PY 版本干净的虚拟环境
    然后用命令 pip install -r requirements.txt 下载好项目依赖包至你的当前虚拟环境

    =====一定要记住 source ./env/bin/active 先激活虚拟环境,然后再跑其他 pip install 或者其他的命令!
    =====Win 下用 .\env\Scripts\active.bat 激活虚拟环境

    最近也刚开始学,这个虚拟环境搞了好久,感觉有点类似 npm。
    node_modules/ 类似 env/
    requirements.txt 类似 package.json

    一点愚见,有误请别采纳:P
    passion336699
        65
    passion336699  
       2017-10-28 13:08:35 +08:00
    本地开发,上框架如 Flask、Django 这种,都会自带一个 server,你如果用这类框架的话,官方 DOC 都会有启动服务器的方法。
    如果是部署到服务器,我现在用的 Gunicorn 配置本地端口来跑 PY 项目,再用 Nginx 代理这个端口。
    网上还有用 supervisord 去管理进程,这样可以用 supervisordctl restart/stop 你的 PY 项目,也挺方便。
    7colcor
        66
    7colcor  
       2017-10-28 13:39:24 +08:00
    我记得不久前也有个”准备学“,这个是那个的 2.0 版本?
    qiukun
        67
    qiukun  
       2017-10-28 13:46:33 +08:00
    唔。。微软有在线 notebook google 也有 cocalc 也有
    leekafai
        68
    leekafai  
       2017-10-28 13:56:38 +08:00 via Android
    我的感觉是,学习 python,最难的部分就是 win 里的环境配置,而这部分学起来是最没有性价比的,因为我也是这样过来的。
    建议还是虚拟机 linux
    twistedmeadows
        69
    twistedmeadows  
       2017-10-28 14:35:12 +08:00 via Android
    win 的话我还是强烈推荐 anaconda 的。
    这两年每次在 win 上配环境都相当头痛,公司同事让我帮忙都直接给他们装 anaconda 了
    likuku
        70
    likuku  
       2017-10-28 14:45:39 +08:00
    装虚拟机啊。

    虚拟机折腾前来个快照,折腾出问题了,快照一键恢复。
    liz2nku
        71
    liz2nku  
       2017-10-28 14:50:58 +08:00 via iPhone
    为什么之前几个说 docker 的都被无视了
    SuperMild
        72
    SuperMild  
       2017-10-28 14:55:41 +08:00 via iPhone   ❤️ 1
    其实初学者用 win 直接折腾是最方便的,根本不怕折腾坏系统,因为 win 上本来就没有东西依赖 python !
    SuperMild
        73
    SuperMild  
       2017-10-28 14:57:39 +08:00 via iPhone
    不过话说回来,我自己是用 anaconda 的
    ericgui
        74
    ericgui  
    OP
       2017-10-28 15:12:36 +08:00
    @liz2nku 因为不会玩啊
    ericgui
        75
    ericgui  
    OP
       2017-10-28 15:13:26 +08:00
    @leekafai 想做正经的开发,python web 开发,以及一些生物信息学方面的开发。所以还是要装好一个本地环境的。
    ericgui
        76
    ericgui  
    OP
       2017-10-28 15:15:54 +08:00
    @passion336699 非常感谢,我马上研究一下。本地就不用装 nginx 了,确实会非常费劲。
    passion336699
        77
    passion336699  
       2017-10-28 16:18:25 +08:00
    @ericgui 像 Flask Django 这类 PY 的框架,都内置一个 web server,根目录有一个 manage.py
    source ./env/bin/active 激活虚拟环境之后,python manage.py runserver 就会代理 localhost 一个端口,当然也能定义参数切换端口 python manage.py runserver 8088 or python manage.py runserver 0.0.0.0:8088,服务器上没有配置域名可以用 0.0.0.0,然后就可以用浏览器,服务器 IP+PROT 直接访问了。
    就可以跑项目了。支持热加载,你修改文件保存之后,不需要停止 server,重新开启服务,它自己会 reload。
    不过如果你新增了文件,是不会触发这个 reload 的,就需要 Control+C,停止 server,然后在跑一遍 runserver。
    passion336699
        78
    passion336699  
       2017-10-28 16:22:06 +08:00
    Win 下就是需要折腾下环境变量吧,这个不算太耗时间吧。。
    把 Python virtualenv pip 那些往 PATH 里面加一下,和 java jdk 那些配置差不多吧
    ericgui
        79
    ericgui  
    OP
       2017-10-28 16:27:32 +08:00
    @passion336699 感谢热情回复!
    looca
        80
    looca  
       2017-10-28 16:45:20 +08:00
    我是装在 vps 上,用 jupyter notebook 远程访问。除了慢点,其他都还好。不过我就是会写 hello world 而已
    likuku
        81
    likuku  
       2017-10-28 18:37:14 +08:00
    如今的 CPU 都支持虚拟化加速技术,虚拟机效能已经非常高了,还抱着老观念歧视虚拟机,那是很可笑的。
    leamtrop
        82
    leamtrop  
       2017-10-28 20:50:40 +08:00
    用 Windows Subsystem for Linux
    recall704
        83
    recall704  
       2017-10-28 21:28:19 +08:00
    virtualenv 没有没法活,或者 docker
    HYSS
        84
    HYSS  
       2017-10-28 21:30:18 +08:00   ❤️ 1
    哥们你这还没开始学呢 就这么墨迹
    railgun
        85
    railgun  
       2017-10-29 01:30:30 +08:00
    docker 啊
    liz2nku
        86
    liz2nku  
       2017-10-29 04:52:11 +08:00 via iPhone
    @ericgui 简单粗暴点就直接去 hub.docker 上找人家写好的 python 环境,如果不放心可以简单看一下 dockerfile 等等
    xxgirl2
        87
    xxgirl2  
       2017-10-29 08:16:08 +08:00
    根据问题,LZ 只需下载一个 Ubuntu Server ( CentOS Server 我没用过就不乱推荐了)和 VirtualBox。
    一个成熟的发行版里各种软件一站式服务。而且和工作环境密切相关。

    系统装在 VBox 里,配好 SSH,用 ExtraPutty 登录操作即可(直接操作是不能复制粘贴代码和命令的,很麻烦)。
    is
        88
    is  
       2017-10-29 09:47:45 +08:00
    anaconda 就很好啊,对自己自信点,这个东西都能把系统倒腾坏了也是蛮厉害的。
    shamashii
        89
    shamashii  
       2017-10-29 13:25:17 +08:00
    不想安装的话下个便携的 winpython,填个 path,对应包用 python -m pip 装就好了
    liangeeks
        90
    liangeeks  
       2017-10-29 13:58:13 +08:00
    只要以后不是从事.Net, 配一台 Mac 是最好的环境
    pinsily
        91
    pinsily  
       2017-10-29 15:13:25 +08:00
    我也是 win10 环境,现在用着的是 anaconda 带的 python 环境,虽然有点大,但是包管理还是不错的,平时安装包也是全局安装,也还没折腾到需要重装系统的情况,如果重现包安装错误的话,一般会到 ![
    Unofficial Windows Binaries for Python Extension Packages]( http://www.lfd.uci.edu/~gohlke/pythonlibs/) 来下载适合 window 的 whl 文件填补,比如装 scrapy 的时候就在这里找到了 Twisted 的包解决了错误,目前都还 ok 状态中,好好努力,mysql 的话之前貌似遇到个绿色版本的 http://blog.csdn.net/lhyzyp/article/details/72867570
    corningsun
        92
    corningsun  
       2017-10-30 09:23:59 +08:00   ❤️ 1
    我觉得这是最好的 python 指南了

    https://pythonguidecn.readthedocs.io/zh/latest/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3552 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 10:28 · PVG 18:28 · LAX 02:28 · JFK 05:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.