相关疑难解决方法(0)

setup.py:将src包重命名为项目名称

假设你有一个名为的项目proj,在这个项目中你有以下结构:

proj/
  dists/
  doc/
  src/
    __init__.py
    xyz.py
    abc.py
  test/
  setup.py
Run Code Online (Sandbox Code Playgroud)

如您所见,项目的所有内容都在src子文件夹中.如何从src文件夹中制作distutils发行包?

我的天真想法,按照教程,将编写setup.py如下:

#omitting basics
setup(
   name='proj',
   packages=['src'],
   package_dir={'proj':'src'}
)
Run Code Online (Sandbox Code Playgroud)

但是在将生成的软件包安装到我的系统之后,我仍然需要导入src.xyz而不是导入proj.xyz,这将是目标和预期的结果.

python distutils python-2.7

24
推荐指数
4
解决办法
6852
查看次数

Src 布局在导入中分配 .src 前缀?在 PyCharm 终端中激活 venv 以进行开发安装

我想了解什么是使用 setuptools 与“src/layout”的正确简约方法,以免除src.在导入中使用前缀的方式?

\n

我已经阅读了大部分PyPAsetuptools文档(及其许多用例),但我无法理解什么是执行此示例的正确方法。

\n

下面的布局重现了我想要实现的目标。我无法理解如何让第二个导入而不是第一个在mylibrary包的所有模块中工作:

\n
from src.mylibrary.hello_word import hello_function # <- This works.\nfrom mylibrary.hello_word import hello_function  # <- How to get this working?\n\nhello_function()\n
Run Code Online (Sandbox Code Playgroud)\n

使用此目录/文件结构:

\n
C:\\MyProject\n\xe2\x94\x82\n\xe2\x94\x82   setup.py\n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80src\n    \xe2\x94\x82\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80mylibrary\n    \xe2\x94\x82      hello_word.py\n    \xe2\x94\x82      module_two.py\n    \xe2\x94\x82      __init__.py\n    \xe2\x94\x82\n
Run Code Online (Sandbox Code Playgroud)\n

当我使用开发模式安装时pip install -e .,egg 目录将添加到上面的树中:

\n
    \xe2\x94\x82 (...)\n    \xe2\x94\x82 \n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80mylibrary.egg-info\n           dependency_links.txt\n           PKG-INFO\n           SOURCES.txt\n           top_level.txt\n
Run Code Online (Sandbox Code Playgroud)\n

有了这个setup.py

\n
C:\\MyProject\n\xe2\x94\x82\n\xe2\x94\x82   setup.py\n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80src\n    \xe2\x94\x82\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80mylibrary\n    \xe2\x94\x82 …
Run Code Online (Sandbox Code Playgroud)

python pip setuptools setup.py pycharm

5
推荐指数
1
解决办法
1799
查看次数

标签 统计

python ×2

distutils ×1

pip ×1

pycharm ×1

python-2.7 ×1

setup.py ×1

setuptools ×1