Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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 使用setuptools在root下移动包_Python_Packages_Setuptools_Distutils - Fatal编程技术网

Python 使用setuptools在root下移动包

Python 使用setuptools在root下移动包,python,packages,setuptools,distutils,Python,Packages,Setuptools,Distutils,这是(我的)项目结构的一部分: <root> |- src |-main |-python |- common |- constans |- controller |- resources |- rest - setup.py 我有一个MANIFEST.in文件,它基于我在网上找到的一个示例: include src.mai

这是(我的)项目结构的一部分:

<root>
|- src
     |-main
         |-python
             |- common
             |- constans
             |- controller
             |- resources
             |- rest
 - setup.py
我有一个MANIFEST.in文件,它基于我在网上找到的一个示例:

include src.main.python fp README COPYING
recursive-include src\main\python *

当我使用命令
python setup.py sdist
时,它会在根目录下创建一个目录“dist”,并将我的项目保存在zip文件中。我的包(common、mappers和rest)位于
src\main\python
下,而不是根文件夹下。如何将它们放在根文件夹下?

我使用pybuilder创建了我的项目,这里有一个关于如何创建项目等的很好的教程。当您的项目已经创建并且代码已经准备好构建时,请转到build.py文件所在的根目录并使用

pyb
将在项目的根目录中创建目标文件夹。 转到项目的
target/dist/name\u
应该有一个setup.py文件。 在pybuilder为您生成的这个设置文件中,确保zip\u safe=False。这是我的安装文件的摘录:

from setuptools import setup
if __name__ == '__main__':
    setup(
          name = 'my_project',
          version = '1.0.dev0',

           ....

          packages = ['my_project', 'my_project.common', 'my_project.mappers', 'my_project.rest'],
          py_modules = ['__init__'],
          classifiers = ['Development Status :: 3 - Alpha', 'Programming Language :: Python'],
          entry_points={
          'console_scripts':
              []
          },
             #  data files
             # package data


          zip_safe=False
    )
在此处使用以下命令:

python setup.py install
将根据setup.py文件中的信息在Lib/site包中创建文件夹:

c:\python27\lib\site-packages\my_project-1.0.dev0-py2.7.egg
在您的site packages文件夹中有一个名为
easy install.pth
的文件,其中应该有一个包含此文件名的条目:

import sys; sys.__plen = len(sys.path)
./loggingserver-0.1dev_r0-py2.7.egg
   .....
./my_project-1.0.dev0-py2.7.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)
此文件中的目录用作挂钩。现在,您可以从任何项目中引用my_project-1.0.dev0-py2.7.egg的子文件夹

因此,让我们假设
my_project-1.0.dev0-py2.7.egg
的结构如下:

-my_project
   - common
   - mappers
   - rest
   - EGG_INFO
from my_project import common
参考资料如下:

-my_project
   - common
   - mappers
   - rest
   - EGG_INFO
from my_project import common

可能是o/t,但您的
设置中有一个输入错误。