Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python setup.py-如何包含共享库_Python_Python 3.x_Setuptools_Python Packaging_Boilerplate - Fatal编程技术网

Python setup.py-如何包含共享库

Python setup.py-如何包含共享库,python,python-3.x,setuptools,python-packaging,boilerplate,Python,Python 3.x,Setuptools,Python Packaging,Boilerplate,python打包(但不是python)的新手,所以如果到处都是问题,请原谅 正在尝试打包一个python模块(project-a),该模块使用另一个目录(lib)中的一组常用脚本 在如何在最终的包工件中包含这个lib目录上遇到了麻烦 下面显示setup.py、工作目录结构以及我如何计划最终的软件包安装结构 还有几个问题- /usr/lib/python3.4/site-packages/project_A | |____project_A/ | | | |____project_A.py | |

python打包(但不是python)的新手,所以如果到处都是问题,请原谅

正在尝试打包一个python模块(project-a),该模块使用另一个目录(lib)中的一组常用脚本

在如何在最终的包工件中包含这个lib目录上遇到了麻烦

下面显示setup.py、工作目录结构以及我如何计划最终的软件包安装结构

还有几个问题-

/usr/lib/python3.4/site-packages/project_A
|
|____project_A/
| |
| |____project_A.py
|
|____lib
| | 
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py


. 
|____setup.py
|
|____MANIFEST.in
|
|____README.md
|
|____project_A/
| |
| |____project_A.py
|
|____project_B/
| |
| |____project_B.py
|
|____conf/
| |
| |____project_A.conf
| |____project_B.conf
|
|____lib
| | 
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py
|
|
|____images/
| |____hello.gif
|
|____tests
| |
| |____project_A
| | |____test_B_example.py
|
| |____project_B
| | |____test_A_example.py
  • lib的相对位置在我的工作目录和安装的软件包之间发生变化。在这两种情况下,有没有一种方法可以在不更改代码的情况下导入
  • 这个结构更好吗?或者我应该将与project_A相关的所有内容移动到自己的目录下,这样每个项目都有自己的setup.py、MANIFEST、conf目录等。。(lib的位置将保持不变,不确定每个包是否应该有自己的tests目录)
  • release=subprocess.check\u如果有人在git repo之外运行此操作,则输出失败。在这种情况下,有没有办法添加默认值
  • 我遇到的一个例子是lib搬到了
    /usr/lib/python3.4/site packages/project\u A/\u lib
    。我喜欢这种方法。你知道如何在setup.py中实现这一点吗
setup.py(当前创建两个包)

Project-A安装目录-

/usr/lib/python3.4/site-packages/project_A
|
|____project_A/
| |
| |____project_A.py
|
|____lib
| | 
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py


. 
|____setup.py
|
|____MANIFEST.in
|
|____README.md
|
|____project_A/
| |
| |____project_A.py
|
|____project_B/
| |
| |____project_B.py
|
|____conf/
| |
| |____project_A.conf
| |____project_B.conf
|
|____lib
| | 
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py
|
|
|____images/
| |____hello.gif
|
|____tests
| |
| |____project_A
| | |____test_B_example.py
|
| |____project_B
| | |____test_A_example.py
Python工作区目录-

/usr/lib/python3.4/site-packages/project_A
|
|____project_A/
| |
| |____project_A.py
|
|____lib
| | 
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py


. 
|____setup.py
|
|____MANIFEST.in
|
|____README.md
|
|____project_A/
| |
| |____project_A.py
|
|____project_B/
| |
| |____project_B.py
|
|____conf/
| |
| |____project_A.conf
| |____project_B.conf
|
|____lib
| | 
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py
|
|
|____images/
| |____hello.gif
|
|____tests
| |
| |____project_A
| | |____test_B_example.py
|
| |____project_B
| | |____test_A_example.py

谢谢你发布这个问题。我们面临着类似的问题。我们希望在不创建包的情况下共享一个公共库。在maven中,我们可以创建一个uber jar,一切都将由它来处理。它将从maven子包中打包公共代码,我们不必担心。但不知道如何在Python中实现同样的功能。此外,我们使用的是无服务器。