我有一個python包,需要通過pip
作爲我的項目需求文件的一部分進行安裝,但我需要將一些文件從我的包複製到項目中安裝這個軟件包。我在想setup()
使用data_files選項做的一樣:setup.py,pip - 獲取python包的執行源路徑
setup(
name='my_pacakge',
...
data_files=[
('example/folder1', ['something1/file1.ext', 'something1/file2.ext']),
('folder2', ['something2/file1.ext', 'something2/file2.ext']),
]
)
,我woud喜歡將這些文件複製到相關的地方pip install my_package
是從,我的理想項目的根目錄運行目錄路徑,留下樹如下
project_root
├── example
│ └── folder1
│ ├── file1.ext
│ └── file2.ext
└── folder2
├── file1.ext
└── file2.ext
但爲此,我需要知道pip install my_package運行的絕對路徑。我試着inspect.stack
,inspect.currentframe
,sys.get_frame
,inspect.inspect.getouterframes(some_of_these_frames)
但這只是給了我關於setup.py在安裝時的當前位置,即是目錄,如
/private/var/folders/gq/vpylvs0d51162jtyqhtgdc6m0000gn/T/pip-tNcbvb-build
/var/folders/gq/vpylvs0d51162jtyqhtgdc6m0000gn/T/pip-6a8MKS-build/setup.py
這是沒有用在所有的我的目的信息。
現在,我知道setuptools
/setup.py
不應該這樣使用,但我真的需要打包一些文件在可安裝的軟件包中,並在安裝時將它們複製/移動到項目根目錄。
有關如何完成此任務的任何建議?
謝謝! :)
您是否創建了該軟件包,還是您下載並正在修改的軟件包?其次,你希望用這個解決什麼問題,因爲這絕對不是正確的方法。 –
我創建了它。我正在嘗試構建某種類型的django-app「kickstarter」,它將包含一些可重複使用的實用程序作爲django應用程序供以後使用,並且我需要複製一些文件作爲此「kickstart」過程的一部分。我知道這不是最好的方式。只要這個過程可以在我使用pip安裝我的軟件包的時候觸發,我就會接受任何建議。 – Gerard
我會推薦[cookiecutter](https://github.com/audreyr/cookiecutter)更適合這個。 –