他们此刻奔驰,不知目的地,只是随性,就像男侠女侠发神经踢了人家的场子,从此就决定去浪迹江湖,整个世界在他们背后喊打喊杀。

因为Flask需要安装许多插件,但是不同的项目使用的插件版本号都不一样,如果使用同一个公共的环境来处理会显得很臃肿不好处理,并且容错率很低容易出莫名其妙的BUG,比如某个项目需要某个库0.5版本,另一个项目需要这个库0.9版本等等。本文介绍了使用pipenv创建虚拟环境的过程。

每次创建一个新的Flask项目,都应该配属一个专门的虚拟环境。

配置环境

安装pipenv

pip install pipenv

然后创建一个新的文件夹,存储你的项目。并且在该文件夹下面使用pipenv配属好虚拟环境。

首先到你创建的目录文件夹下面,输入命令

pipenv install

随后会提示虚拟环境创建成功,提示输入pipenv shell来激活虚拟环境。

pipenv shell

这个时候细心点使用pip list就会发现你之前安装的包都不见了。虚拟环境创建成功,使用的包并非全局变量的包。

然后在这个虚拟环境中安装Flask的包

pipenv install flask

pipenv常用命令

进入虚拟环境

1. 切换到项目文件夹,确保之前已经pipenv install
2. 输入 pipenv shell,激活进去当前项目虚拟环境

退出虚拟环境

exit

安装卸载包

pipenv install requests
pipenv uninstall requests

查看安装包的依赖包

pipenv graph 

Pycharm 设置虚拟环境路径

Setting–>Project:–>Projiect Interpreter–>找到之前创建的虚拟环境(方法如下)

CMD下–>cd 项目文件夹–>pipenv shell(启动虚拟环境)–>pipenv –venv(获取虚拟环境路径)–>获取到路径后–>在Project Interpreter选择获取到的路径即可–>Apply

异常

不知道为什么,我的win10安装pipenv–>pipenv install–>pipenv check–>pipenv –venv都是正常的,唯一启动虚拟环境的时候就报错了,报错内容如下:

Launching subshell in virtual environment鈥?Traceback (most recent call last):
  File "f:\python27\lib\runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "f:\python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "F:\Python27\Scripts\pipenv.exe\__main__.py", line 9, in <module>
  File "f:\python27\lib\site-packages\pipenv\vendor\click\core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "f:\python27\lib\site-packages\pipenv\vendor\click\core.py", line 697, in main
    rv = self.invoke(ctx)
  File "f:\python27\lib\site-packages\pipenv\vendor\click\core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "f:\python27\lib\site-packages\pipenv\vendor\click\core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "f:\python27\lib\site-packages\pipenv\vendor\click\core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "f:\python27\lib\site-packages\pipenv\cli.py", line 664, in shell
    three=three, python=python, fancy=fancy, shell_args=shell_args, pypi_mirror=pypi_mirror
  File "f:\python27\lib\site-packages\pipenv\core.py", line 2159, in do_shell
    shell.fork(*fork_args)
  File "f:\python27\lib\site-packages\pipenv\shells.py", line 97, in fork
    _handover(self.cmd, self.args + list(args))
  File "f:\python27\lib\site-packages\pipenv\shells.py", line 62, in _handover
    proc = subprocess.run(args, shell=True, universal_newlines=True)
AttributeError: 'module' object has no attribute 'run'

手动解决一番没有成功,应该是个人电脑配置原因,测试发现没办法启动虚拟环境,不过不重要,我一般都是使用Pycharm开发,在Pycharm中新建项目然后解释器选择pipenv创建的解释器即可。

pipenv