我该把自定义库放在虚拟环境的哪里?

3 投票
1 回答
1831 浏览
提问于 2025-04-18 11:42

我有一个虚拟环境,用来管理几个不同的项目。我想写一个工具库,让这些项目都能用上。把这个库放在虚拟环境里似乎是个不错的主意。如果你觉得不行,欢迎直接告诉我,但请给我一个替代方案。

假设我不是完全疯了,那么我应该把我的库放在哪里最合适呢?

我的虚拟环境会把我用 pip 安装的所有东西放在 lib/python2.7/site-packages 这个文件夹里。我在想,是不是应该跟着这个做,还是找个单独的地方放(在目录树的更上层),这样如果有冲突的话,我的工作就不会被 pip(等等)覆盖掉。

1 个回答

2

如果你的项目按照标准的打包方式使用了 setuptools,那么你只需要在你想要使用这个库的虚拟环境中运行 python setup.py develop。这样会生成一个 .egg-link 文件,指向你的包,其他库就可以像使用其他包一样使用它。这样做的好处是,你的最新修改会同时对所有包可用(如果这是你想要的效果)。如果你不想这样做,那你可以选择运行 python setup.py install,或者在文件系统的不同位置使用多个版本。

要开始使用,可以看看 使用 setuptoolssetup.py 的入门指南(如果这是你自己的私活,可以跳过注册包到 pypi 的部分)。

还有一个相关的 StackOverflow 讨论: setup.py 示例?打包指南》也会非常有用。

撰写回答