相关疑难解决方法(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
查看次数

pip install --editable:指向错误路径的链接

我已经使用了一段时间的setuptools,最近使用pip为我的项目创建了发行​​版,并且一切正常:诸如“ python setup.py sdist”,“ python setup.py install”之类的命令按配置工作。现在,我想使用pip以“可编辑”的方式安装,以简化我对该程序包进行维护时的测试。所以我尝试了

cd \
pip install -e .\mypackage
Run Code Online (Sandbox Code Playgroud)

这会将路径:c:\ mypackage添加到C:\ python27 \ Lib \ site-packages \ easy-install.pth。但是,在我的情况下,这是错误的,因为mypackage的结构如下:

C:\mypackage 
    setup.py 
    src 
        mypackage 
            __init__.py
             ... 
    docs 
    tests
Run Code Online (Sandbox Code Playgroud)

因此easy-install.pth应该包含c:\ mypackage \ src,而不是c:\ mypackage。我可以手动编辑easy-install.pth以将“ \ src”添加到添加的路径,然后“ import mypackage”成功完成,应该如此。如果我从c:\ mypackage运行命令“ python setup.py development”,则会发生相同的问题,因此该问题很可能在setuptools级别上。

setup.py具有:

setup( 
     ... 
     packages = find_packages('src'), 
     package_dir = {'mypackage': 'src/mypackage'}, 
     ... 
)
Run Code Online (Sandbox Code Playgroud)

(唯一的其他设置参数是文本项,例如作者,版本等,由于与问题无关,因此未列出)。

我不想在easy-install.pth中编辑路径。看了看文档,什么都看不到,表明将包源根目录放在与setup.py分开的文件夹中是一个问题。我做错了什么?

python install pip

6
推荐指数
1
解决办法
1455
查看次数

标签 统计

python ×2

distutils ×1

install ×1

pip ×1

python-2.7 ×1