pycharm+pipenv虚拟环境作开发和依赖管理

作者:matrix 发布时间:2019年5月23日星期四 分类:Python

之前使用vagrant来在虚拟机环境中把所有Python模块安装,但是也有一些问题。比如个别时候连接到vagrant虚拟机内部比较慢,还有就是pip3 install安装模块有时候会失败,不能更好的管理依赖包分发项目。

每个项目模块分开管理安装,不会污染本地系统的全局环境,测试和生产的模块都可以用这个来管理分发。

pipenv会在项目中创建相关联的虚拟环境信息以及依赖信息pipfile文件,一起开发的同事可以执行pipenv install操作来安装以及初始化好的pipenv项目,系统会默认安装所需要的依赖环境。

测试环境:pycharm 2018.3.5 for MacOS

安装pipenv

$ pip3 install pipenv

初始化项目

项目目录中执行操作

$ pipenv --python 3.7#指定项目运行python版本 需要系统已经安装好该版本

会创建Python虚拟环境所在目录

✔ Successfully created virtual environment!
Virtualenv location: /Users/用户名/.local/share/virtualenvs/untitled-RaU-esYo

查看虚拟环境信息:

$ pipenv --venv

安装模块

$ pipenv install requests
#也可以指定安装版本 :pipenv install requests==2.22

指定开发环境才安装的模块

$ pipenv install --dev nose2#安装测试环境才用的开发包

项目克隆

项目需要让其他同事克隆就可以直接install来操作

$ pipenv install
#或者使用 pipenv install –dev#安装所有依赖项,包括测试开发包

pycharm配置

1.添加python解释器

2.选择Pipenv 虚拟环境
Base interpreter为本机系统中的python解释器路径
Pipenv executable表示pipenv,命令的环境变量路径

 

3.之后在项目下选择刚刚新建好的Pipenv名称

 

测试运行

配置好pipenv后直接点击右上角的运行图标即可看到命令行窗口的显示

pipenv命令收集

pipenv shell #进入虚拟环境命令行
pipenv --venv#查看虚拟环境路径
pipenv --py#获取虚拟环境python解释器路径
pipenv graph#查看依赖关系
pipenv run python Main.py#使用Pipenv虚拟环境运行Main.py

报错

  • 克隆pipenv环境的时候报错OSError: mysql_config not found
    centos下确保安装mysql-devel等依赖环境
$ yum install mysql-devel gcc gcc-devel python-devel

如果已经安装则考虑是否为软连接不存在导致的not found

ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config

参考:
一条命令解决mysql_config not found
https://blog.csdn.net/weiliu0626/article/details/8444644

  • 若debug调试失败显示类似的红色进程报错
pydev debugger: process 37807 is connecting

删掉项目中隐藏的的.idea目录,然后重启pycharm即可调试变量

参考:
https://www.jianshu.com/p/00af447f0005

https://www.jetbrains.com/help/pycharm/pipenv.html

https://intellij-support.jetbrains.com/hc/en-us/community/posts/205967904-pydev-debugger-is-not-connecting

https://blog.51cto.com/2681882/2164134

pycharm中vagrant的基本配置使用

作者:matrix 发布时间:2019年3月14日星期四 分类:零零星星

使用vagrant做开发可以将环境全部运行于虚拟机中,避免本机安装各种环境模块造成问题也是为了完全和宿主机分离。

测试:macOS + pycharm + Django项目

配置vagrant的初始化文件

pycharm设置中搜索Vagrant
配置vagrant的基本运行程序
图片4467-pycharm中vagrant的基本配置使用
Vagrant executable为Vagrant程序路径
Instance folder表示Vagrant box配置的初始化目录。我这里也就直接将就以前init的目录。默认位置为当前项目路径
设置好就可以启动虚拟机环境:tools->Vagrant->up
打开虚拟机ssh:tools->Start SSH Session

配置python解释器

点击右上角绿色▶️箭头或者Control+R按键运行,提示失败是由于使用vagrant项目代码是在本机修改编写在虚拟机中运行,默认的项目启动会调用本机的python环境来运行,项目中的所有module亦同 所以修改下运行的python环境。
pycharm设置中搜索Project Interpreter进行配置修改
图片4468-pycharm中vagrant的基本配置使用

点击右侧设置图标add新加一个vagrant环境的Interpreter
图片4471-pycharm中vagrant的基本配置使用
添加完成后重新选择新加的虚拟机中的python解释器
图片4472-pycharm中vagrant的基本配置使用
之后列表中的可用包名就都是虚拟机中已经安装了的。重新run也就会成功执行。

配置run

如果运行Django项目还需要给简单编辑一下运行选项Edit Configurations...
图片4473-pycharm中vagrant的基本配置使用
打开之后选择新添加的Pyhton Interpreter,设置Parameters为Django项目的运行参数runserverrunserver 0.0.0.0:8080

图片4474-pycharm中vagrant的基本配置使用

然后▶️运行项目就OK了。

ssh://vagrant@127.0.0.1:2222/usr/bin/python3.6 -u /pythonWork/okex/okex/manage.py runserver 0.0.0.0:8080
Performing system checks...
...
March 14, 2019 - 07:56:04
Django version 2.1.7, using settings 'okex.settings'
Starting development server at http://0.0.0.0:8080/
Quit the server with CONTROL-C.

解决Unresolved reference错误

编辑器很多提示导包的Unresolved reference 'XXX' more....错误 在于py文件目录定位错误导致的 需要手动修改下
重新选择import倒包的包名py文件的目录即可
图片4475-pycharm中vagrant的基本配置使用
设置项目的Project Structure,先选中报错 提示的python文件的目录,再点击上面的Sources,之后右侧的Source Folders就会出现刚刚选中的目录,保存应用即可。
若没有马上生效需要清空缓存且重启File->Invalidate Caches / Restart...,之后编辑器也就不会提示导包的错误提示Unresolved reference

参考:
https://blog.csdn.net/u013088062/article/details/50346181
https://blog.csdn.net/u013088062/article/details/50346719
https://blog.csdn.net/wqwqwqwq403/article/details/78861255
https://www.cnblogs.com/xiaohuamao/p/6903030.html

PEACE~