在Python egg sdist安装目录中安装静态文件

2024-07-01 07:18:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我是creating a Python3 application,它依赖于项目中静态文件的目录。在

项目结构:

myBlanky
  \__blankys
        \__bootstrap
         |__google_app_engine
  \__my_blanky
       \____init__.py
        |__my_blanky.py
        |__file_system_utils.py
  setup.py
  MANIFEST.in
  README.md
  LICENSE
  .travis.yml
  setup.cfg

因此,在我的根目录中,我有一个Python模块(my_blanky),各种Python项目文件(manifest,设置.py,等等)和1个充满静态数据的目录(blankys)。在

我在创建一个。焦油gz在创建清单.in归档并编辑我的设置.py文件,我可以创建一个。焦油gz成功使用命令:python3 setup.py sdist。在

我的设置.py公司名称:

^{pr2}$

我的清单.in公司名称:

recursive-include blankys *
include *.md
include LICENSE
include setup.cfg

在我运行python3 setup.py sdist之后,我打开创建的。焦油gz文件,它包含了我需要的所有数据(blankys目录、my_blanky模块、所有根目录静态文件),所以它包含了我需要的所有静态文件,太棒了。在

然后我继续安装。焦油gz使用pip:find ./dist -iname "*.tar.gz" -print0 | xargs -0 pip install并成功运行,没有错误。(安装它的输出不显示任何关于静态文件的信息,但它认为它不会以任何方式显示这些信息。)

现在问题来了。我的python项目现在应该安装在我的机器上了。我可以在我的机器上运行myblanky,或者myblanky -v,一切都很好。一切正常。但是当我试图运行任何像myblanky list这样试图访问静态文件目录“blankys”的代码时,它会说/usr/local/lib/python3.4/dist-packages/my_blanky/中没有这样的目录。我手动浏览到那个位置,那里只有我的Python模块my_blanky源文件。父目录:/usr/local/lib/python3.4/dist-packages/也根本不包含任何静态文件。在

我希望静态目录blankys在pip安装项目时被复制到dist packages位置。我希望该目录与我的my_blanky模块目录共存,这样我就可以在程序中使用静态文件目录我的相对路径搜索。在


所以如果静态文件安装到我的。焦油gz包和安装似乎在我的机器上成功了,我的静态文件在安装的dist包中在哪里?我正在从的机器上安装项目。焦油gz其中包含静态文件/目录,那么为什么在安装过程中没有复制这些文件?只复制python模块my_blanky。在


Tags: 模块文件项目py目录机器includemy
1条回答
网友
1楼 · 发布于 2024-07-01 07:18:30

我觉得我已经解决了这个问题。在

基本上我的问题是我有一个“设置.config“我希望能够在用户计算机上访问系统范围的文件。所以与其设置.config文件位于某个随机目录,我的程序找不到,我想有一个单一的设置.config系统上的文件,它可以找到和操作,所以我在我的问题中问你如何在distutils中做到这一点。在

今天我在清理我机器的主目录时,我意识到我的想法完全错了。当应用程序在系统中某个地方有一个可以访问的配置文件时,它就一直这样做。它位于~/.config/etc或Windows:%APPDATA%。我在上面的问题中询问如何安装设置.config文件位于/usr/local/lib/python3中,但这是错误的。这不是我应该做的,只是像其他程序一样做。在

所以回答我的问题:你不能在/usr/local/lib/python3中安装数据文件,这是有原因的。而是使用~/.config/etc或{}。在

相关问题 更多 >

    热门问题