我们采取以下项目布局:
$ ls -R .
.:
package setup.py
./package:
__init__.py dir file.dat module.py
./package/dir:
tool1.dat tool2.dat
Run Code Online (Sandbox Code Playgroud)
以下内容为setup.py:
$ cat setup.py
from distutils.core import setup
setup(name='pyproj',
version='0.1',
packages=[
'package',
],
package_data={
'package': [
'*',
'dir/*',
],
},
)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我想在所有非Python文件package/和package/dir/目录.但是,运行setup.py install会引发以下错误:
$ python setup.py install
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/package
copying package/module.py -> build/lib/package
copying package/__init__.py -> build/lib/package
error: can't copy 'package/dir': doesn't exist or not a …Run Code Online (Sandbox Code Playgroud) 我有这个项目:
.
??? django_mysetup
? ??? __init__.py
? ??? template-basket
? ? ??? apple
? ? ??? app_template
? ? ? ??? forms.py
? ? ? ??? __init__.py
? ? ? ??? models.py
? ? ? ??? tests.py
? ? ? ??? views.py
? ? ??? project_template
? ? ??? manage.py
? ? ??? project_name
? ? ??? __init__.py
? ? ??? settings.py
? ? ??? urls.py
? ? ??? wsgi.py
? ??? templates
? ??? example_direct.html
? ??? example.html …Run Code Online (Sandbox Code Playgroud) 我知道有一种方法可以使用python导入zip文件中的模块.我在zip文件中创建了一种自定义python包库.
我想把我的"任务"脚本放在这个包中,那些正在使用库.然后,使用bash,我想在zip文件中调用所需的脚本而不解压缩.
目标是当我想运行我的脚本时,只有一个zip在指定的文件夹中移动.
我不知道为什么当我运行pip install ../ path_to_my_proj /(来自virtualenv)时,没有数据文件被复制到sitepackage / myproj /文件夹中。python软件包正确复制了。
python版本3.4.4
我的项目目录如下:
??? myproj
? ??? __init__.py
? ??? module1.py
? ??? module2.py
??? data_files
| ??? subfolder1
? | ??? datafile.dll
? | ??? datafile2.dll
| ??? subfolder2
? ??? datafile3.dll
? ??? datafile4.dll
|
??? MANIFEST.in
??? setup.py
Run Code Online (Sandbox Code Playgroud)
我的MANIFEST.in看起来像
recursive-include data_files *
include README.md
Run Code Online (Sandbox Code Playgroud)
我的设置如下:
setup(
name='myproj',
version='0.1.1',
install_requires=['requirement'],
packages=['myproj'],
include_package_data=True,
)
Run Code Online (Sandbox Code Playgroud)