安装完成后,我想要创建软链接到安装过程中创建的某些配置和数据文件。如何确定从软件包的setup.py中安装的新软件包文件的位置?我最初硬编码了路径“/usr/local/lib/python2.7/dist-packages”,但在尝试使用虚拟环境(由virtualenv创建)时,它会出现错误。我尝试使用distutils.sysconfig.get_python_lib(),在虚拟环境中可以工作,但在实际系统上安装时,它返回“/usr/lib/python2.7/dist-packages”(注意缺少“local”目录)。我还尝试使用site.getsitepackages():在基本环境中运行Python shell:
import site
site.getusersitepackages()
'/home/sarah/.local/lib/python2.7/site-packages'
site.getsitepackages()
['/usr/local/lib/python2.7/dist-packages','/usr/lib/python2.7/dist-packages']
在名为“testenv”的虚拟环境中运行Python shell:
import site
site.getsitepackages()
Traceback(most recent call last):
File“”,第1行,在()之前
AttributeError:'module' object has no attribute 'getsitepackages'
import site
site.getusersitepackages()
'/home/sarah/.local/lib/python2.7/site-packages'
site.getsitepackages()
['/usr/local/lib/python2.7/dist-packages','/usr/lib/python2.7/dist-packages']
在名为“testenv”的虚拟环境中运行Python shell:
import site
site.getsitepackages()
Traceback(most recent call last):
File“”,第1行,在()之前
AttributeError:'module' object has no attribute 'getsitepackages'
我在Ubuntu上运行“Python 2.7.3(默认值,Aug 1 2012, 05:14:39)”,并使用“[GCC 4.6.3] on linux2”。我可能可以通过尝试/除块拼凑一些东西,但似乎应该有一些由distutils/setuptools设置/返回的变量。(只要它有效,我对使用哪个分支不偏不倚。)
谢谢。
import <yourpackage>
并从<yourpackage>.__file__
中剥离包名。虽然我相信还有更好的方法。 - ev-br