Python:如何编辑已安装的软件包?


69

我通过安装了一些软件包pip install something。我想编辑包的源代码something。它在哪里(在ubuntu 12.04上),并且每次编辑源代码并运行它时如何重新加载它?

目前,我正在编辑源代码,然后一次又一次地运行python setup.py,事实证明这很麻烦。


dpkg-query -L <package_name>然后编辑文件?
Deepak Ingole 2014年

1
Ubuntu Generic(我也希望有新版本)将pip软件包安装到/usr/local/lib/python2.7/dist-packages,将apt软件包安装到/usr/lib/python2.7/dist-packages
Brij Raj Singh- MSFT 2014年

Answers:


87

您永远不要编辑已安装的软件包。而是,安装软件包的分支版本。

如果您需要经常编辑代码,请不要通过以下方式安装软件包pip install something并在“ ... / site_packages / ...”中编辑代码

而是将源代码放在开发目录下,并使用

python setup.py develop
# or
pip install -e path/to/SomePackage
# Or use a vcs at the first place
$ pip install -e git+https://github.com/lakshmivyas/hyde.git#egg=hyde

将您的更改放入版本控制系统中,并告诉pip明确安装它。

参考: 编辑模式


6
我已经使用安装了它pip install -e /path/SomePackage/。我浏览到该目录的内部/src/并编辑了一个文件。但是,当我SomePackage从终端运行时,并不能反映此更改。
KJW

它是源代码所在的位置,.py其中包含我编辑的文件。
KJW

3
您应该使用git之类的代码来控制该软件包。当您生成软件包时,所有创建的新文件都将用git标记,然后您可以将更改还原到除正在修改的文件之外的所有文件。这将迫使pip从头开始重建,而不是使用更改之前编译的文件版本进行重建。
honi 2015年

1
被克隆封装好的方法还是应该python setup.py还是pip install it
Monica Revolucion

1
注意:如果使用python setup.py develop它,还将在开发模式下安装所有依赖项-这可能不是您所需要的。这将需要更长的时间!但是,如果使用pip install -e <path>它,只需确保所有依赖项都存在,并且仅python setup.py develop在当前程序包上运行即可。
LightCC'1

6

您可以编辑中安装的文件/usr/local/lib/python2.7/dist-packages/。请注意,您将必须使用sudo或成为root。更好的选择是使用虚拟环境进行开发。然后,您可以在虚拟环境中编辑具有权限的安装文件。


1
我正在使用带有-no-site-packages选项的mkvirtualenv,安装pip和install something。但是我看不到它将文件安装在我可以编辑的virtualenv中的位置
KJW 2014年

9
这是不正确的建议。不建议直接编辑已安装的程序包。它使软件包升级和维护变得一团糟。它使自动部署变得一团糟。通常,它会使devop变得一团糟。有关正确的开发实践,请参阅高分答案。
Wtower
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.