如何将根目录的所有内容分发到具有该名称的目录
How do I distribute all contents of root directory to a directory with that name
我有一个名为 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.py
和 module2.py
放在安装目录中。
如何指定 setup
以便将目录 /myproj
及其所有内容放入安装目录?
在此项目的 myproj
根目录中,您想将 module1.py
和 module2.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 包方面可能遇到的更具体的问题。
我有一个名为 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.py
和 module2.py
放在安装目录中。
如何指定 setup
以便将目录 /myproj
及其所有内容放入安装目录?
在此项目的 myproj
根目录中,您想将 module1.py
和 module2.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 包方面可能遇到的更具体的问题。