Windows python setup.py安装不会分发模块python文件

时间:2018-12-06 16:45:29

标签: python module packaging setup.py

我已经在网上搜索了几个小时,但我无法找出我做错了什么。 我通过python setup.py install安装了自己的软件包。尽管我无法import mymodule在系统上的任何地方使用此功能。

这是目录的样子:

C:\PyDev\simple_test\mymodule
C:\PyDev\simple_test\setup.py
C:\PyDev\simple_test\mymodule\__init__.py

使用:__init __。py

def sayhello():
    print("Hello")

setup.py

from setuptools import setup
setup(
    name='mymodule'
)

命令行: python setup.py install

这样做不会引起任何错误。但是,当我查看站点软件包中已安装的.egg文件时,它仅包含一个EGG-INFO目录,而没有任何源文件...

这是安装命令的输出:

(venv) C:\PyDev\simple_test>python setup.py install
running install
running bdist_egg
running egg_info
creating mymodule.egg-info
writing mymodule.egg-info\PKG-INFO
writing dependency_links to mymodule.egg-info\dependency_links.txt
writing top-level names to mymodule.egg-info\top_level.txt
writing manifest file 'mymodule.egg-info\SOURCES.txt'
reading manifest file 'mymodule.egg-info\SOURCES.txt'
writing manifest file 'mymodule.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
warning: install_lib: 'build\lib' does not exist -- no Python modules to install

creating build
creating build\bdist.win-amd64
creating build\bdist.win-amd64\egg
creating build\bdist.win-amd64\egg\EGG-INFO
copying mymodule.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO
copying mymodule.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying mymodule.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying mymodule.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist\mymodule-0.0.0-py3.7.egg' and adding 'build\bdist.win-amd64\egg' to it
removing 'build\bdist.win-amd64\egg' (and everything under it)
Processing mymodule-0.0.0-py3.7.egg
Copying mymodule-0.0.0-py3.7.egg to c:\pydev\simple_test\venv\lib\site-packages
Adding mymodule 0.0.0 to easy-install.pth file

Installed c:\pydev\simple_test\venv\lib\site-packages\mymodule-0.0.0-py3.7.egg
Processing dependencies for mymodule==0.0.0
Finished processing dependencies for mymodule==0.0.0

如果我运行python setup.py develop,它似乎可以工作。然后,我可以在整个系统中访问该软件包。

1 个答案:

答案 0 :(得分:1)

我不确定是什么原因,但有两点很突出:

  • 您在setup.py中没有指定packages
  • 模块目录的名称与主目录的名称不同

我可以想象这两个因素的结合会导致setuptools无法找到您的来源。

您可以尝试重命名src目录或将setup.py更改为

from setuptools import setup, find_packages

setup(name='mymodule',
      packages=find_packages()
)