簡體   English   中英

如何將根目錄的所有內容分發到具有該名稱的目錄

[英]How do I distribute all contents of root directory to a directory with that name

我有一個名為myproj的項目, myproj結構類似於

/myproj
    __init__.py
    module1.py
    module2.py
    setup.py

我的setup.py看起來像這樣

from distutils.core import setup

setup(name='myproj',
      version='0.1',
      description='Does projecty stuff',
      author='Me',
      author_email='me@domain.com',
      packages=[''])

但這會將module1.pymodule2.py放在安裝目錄中。


如何指定setup ,以便將目錄/myproj及其所有內容放入安裝目錄?

在此項目的myproj根目錄中,您希望將module1.pymodule2.py移動到名為myproj的目錄下,如果您希望保持 Python < 3.3 兼容性,請在其中添加一個__init__ .py。

├── myproj
│   ├── __init__.py
│   ├── module1.py
│   └── module2.py
└── setup.py

您也可以考慮使用setuptools而不僅僅是 distutils。 setuptools提供了更多幫助方法和附加屬性,使設置此文件變得更加容易。 這是我為上述項目構建的最低限度的setup.py

from setuptools import setup, find_packages

setup(name='myproj',
      version='0.1',
      description="My project",
      author='me',
      author_email='me@example.com',
      packages=find_packages(),
      )

運行安裝你應該看到這樣的行:

copying build/lib.linux-x86_64-2.7/myproj/__init__.py -> build/bdist.linux-x86_64/egg/myproj
copying build/lib.linux-x86_64-2.7/myproj/module1.py -> build/bdist.linux-x86_64/egg/myproj
copying build/lib.linux-x86_64-2.7/myproj/module2.py -> build/bdist.linux-x86_64/egg/myproj

這表示安裝腳本已經選擇了所需的源文件。 運行 python 解釋器(最好在這個項目目錄之外)以確保可以導入這些模塊(不是由於相對導入)。

另一方面,如果您希望在根級別提供這些模塊,則肯定需要顯式聲明py_modules

最后, Python Packaging User Guide是一個很好的資源,可以解決任何人在構建可分發的 Python 包方面可能遇到的更具體問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM