pipenv 帮助文档中写道:
将本地setup.py安装到您的虚拟环境/ Pipfile中:
$ pipenv install -e。
有人可以进一步详细说明何时以及如何使用与之pipenv install -e . 相关的命令setup.py吗?
根据pipenv,-e .是指可编辑的依赖项。但是,我无法理解给出的解释。有人可以解释吗?
编辑:
例如,mypkg在我的--user目录中创建了一个简单的发行版软件包调用之后pip,即~/mypkg使用以下命令:
$ pipenv shell
(mypkg-x985xH5M) $ python3 setup.py sdist bdist_wheel
(mypkg-x985xH5M) $ twine upload --repository-url https://test.pypi.org/legacy/ dist/*
Run Code Online (Sandbox Code Playgroud)
并且/mypkg具有以下文件结构:
/mypkg
|_ LICENSE
|_ README.md
|_ setup.py
|_ /mypkg
| |_ __init__.py
| |_ mypkg.py
|_ /dist
| |_ mypkg-0.0.1rc1.tar.gz
| |_ mypkg-0.0.1rc1-py3-none-any.whl
|_ /build
| |_ /bdist.linux-x86_64
| |_ /lib
| |_ /mypkg
| |_ __init__.py
| |_ mypkg.py
|_ /mypkg.egg-info
|_ dependency_links.txt
|_ entry_points.txt
|_ PKG-INFO
|_ SOURCES.txt
|_ top_level.txt
Run Code Online (Sandbox Code Playgroud)
该命令$ pipenv install -e .做什么?
通常,pip(driving setup.py)将在Python 位置中构建并安装一个Python项目site-packages。.py并.pyc在此过程中复制文件。
这意味着,如果您在磁盘上具有项目的本地副本,则不能只编辑.py源文件并查看反映在从中加载相同文件的项目中反映的更改site-packages。
该-e交换机构建,然后安装一个指针文件中site-packages自动添加项目到Python的模块搜索路径的位置。现在加载模块将从磁盘上的位置而不是从磁盘上加载site-packages,并且每次运行使用它的Python项目时,对文件的更改都会显示出来。请参阅Python setup.py development vs install和setup.py install与setup.pydevelop之间的区别
.只是告诉pip/ pipenv将当前工作目录作为要构建的项目的位置(setup.py应该存在于当前工作目录中)。
对于您的示例,pip install -e .在中运行~/mypkg,这意味着python3 setup.py develop将运行,并.egg-link在site-packagesPipenv维护的Python 3 virtualenv目录中添加一个文件。在同一site-packages目录中的easy-install.pth文件被更新以添加~/mypkg目录的完整路径。所有这些意味着import mypkg在Python中将直接从~/mypkg/mypkg包中导入代码,并且您对.py文件所做的任何更改都将直接可用。
| 归档时间: |
|
| 查看次数: |
2134 次 |
| 最近记录: |