标签: egg

python:一个带有单文件源文件的python egg的简单示例?

我不太确定如何构建一个非常简单的单文件源模块.是否有一个示例模块,其中一个Web可以构建为python .egg?

setuptools页面看起来很简单,你只需要你的setup.py文件,然后至少有一个其他.py文件,我可以构建一个.egg文件OK,甚至安装它easy_install,但我似乎无法import对文件从python中.(注意:使用2.6.4)


这是我的样本目录:

sconsconfig
   setup.py
   sconsconfig.py
Run Code Online (Sandbox Code Playgroud)

setup.py:

from setuptools import setup, find_packages
setup(name='sconsconfig',
      version='0.1',
      packages = find_packages(),
      )
Run Code Online (Sandbox Code Playgroud)

sconsconfig.py:

def blarg(x):
  return x+1
Run Code Online (Sandbox Code Playgroud)

如果我运行setup.py bdist_egg它然后创建一个鸡蛋文件,但如果我查看它,没有.py源文件....

python egg setuptools

11
推荐指数
1
解决办法
9246
查看次数

访问Python egg中的配置文件时出现问题

我有一个Python项目,具有以下结构:

package1
  class.py
  class2.py
  ...
package2
  otherClass.py
  otherClass2.py
  ...
config
  dev_settings.ini
  prod_settings.ini
Run Code Online (Sandbox Code Playgroud)

我写了一个setup.py文件,将其转换为具有相同文件结构的egg.(当我使用zip程序检查它时,结构看起来完全相同.)有趣的是,当我从IDE运行Python代码时,它工作正常,可以访问配置文件; 但是当我尝试使用egg从不同的Python脚本运行它时,它似乎无法在egg中找到配置文件.如果我将配置文件放入相对于调用的目录中Python脚本(鸡蛋的外部),它的工作原理 - 但这种方式使得拥有一个自包含的鸡蛋的目的失败了,鸡蛋具有程序的所有功能,可以从任何地方调用.我可以使用任何类/模块并运行egg中的任何函数,只要它们不使用配置文件...但如果它们这样做,则鸡蛋找不到它们,因此函数不起作用.

任何帮助将非常感激!我们对这里的鸡蛋有点新意,并不知道从哪里开始.

python egg file

11
推荐指数
1
解决办法
4236
查看次数

我可以将鸡蛋转换成轮子吗?

我有一个已经构建/下载的Python蛋,我想将其转换为PEP 427中记录的轮式格式.
我怎样才能做到这一点?

python packaging egg pip python-wheel

11
推荐指数
2
解决办法
4505
查看次数

Databricks(Spark):.egg依赖项没有自动安装?

我有一个本地创建的.egg包依赖于boto==2.38.0.我使用setuptools来创建构建分发.一切都在我自己的本地环境中工作,因为它boto正确地从中获取PiP.但是,databricks当我将库附加到群集时,它不会自动获取依赖项.

我现在真的很挣扎了几天试图在databricks上加载时自动安装依赖项,我使用的setuptools; 'install_requires=['boto==2.38.0']'是相关字段.

当我boto直接PyPidatabricks服务器上安装(所以不依赖于该install_requires字段正常工作)然后调用我自己的.egg,它确实认识到这boto是一个包,但它不识别它的任何模块(因为它没有导入我的拥有.egg的命名空间???).所以我不能让我.egg上班.如果这个问题持续存在而没有任何解决方案,我认为这对databricks用户来说是一个非常大的问题.当然应该有一个解决方案......

谢谢!

python dependencies egg apache-spark pyspark

11
推荐指数
1
解决办法
1729
查看次数

通过pip安装egg

我可以通过以下方式成功为morfeusz2安装egg

\n\n
python -m easy_install http://sgjp.pl/morfeusz/download/20181014/ubuntu-xenial/morfeusz2-0.4.0-py3.7-win-amd64.egg\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,我通过 . 定义的所有其他依赖项requirements.txt。我希望所有这些都以一致的方式定义。morfeusz2 不存在于任何 PyPI 存储库中。如何以一致的方式定义项目的依赖关系?

\n\n

例如,我尝试定义以下requirements.txt文件:

\n\n
django\npint\nhttp://sgjp.pl/morfeusz/download/20181014/ubuntu-xenial/morfeusz2-0.4.0-py3.7-win-amd64.egg\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,运行时pip install -r requirements.txt失败并显示:

\n\n
(mealplanner) D:\\Projects-intellij\\djangoproject\\mealplanner>pip install -r requirementx.txt\nCollecting http://sgjp.pl/morfeusz/download/20181014/ubuntu-xenial/morfeusz2-0.4.0-py3.7-win-amd64.egg (from -r requirementx.txt (line 3))\n  Downloading http://sgjp.pl/morfeusz/download/20181014/ubuntu-xenial/morfeusz2-0.4.0-py3.7-win-amd64.egg (7.7MB)\n    100% |\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 7.7MB 11.4MB/s\n    Complete output from command python setup.py egg_info:\n    Traceback (most recent call last):\n      File "<string>", line 1, in <module>\n      File "c:\\users\\oem\\virtualenv\\mealplanner\\lib\\tokenize.py", line 447, in open\n        buffer = _builtin_open(filename, \'rb\')\n    FileNotFoundError: [Errno 2] No such …
Run Code Online (Sandbox Code Playgroud)

egg pip easy-install python-3.x

11
推荐指数
1
解决办法
3万
查看次数

Python“蛋”和“轮子”之间的区别

我在我的机器上安装 pandas 时遇到了这个错误:

运行 setup.py (路径:/tmp/pip-build-WzvvgM/pandas/setup.py) 包 pandas 的 Egg_info

清理...命令 python setup.py Egg_info 在 /tmp/pip-build-WzvvgM/pandas 中失败,错误代码为 1 在 /home/user508/.pip/pip.log 中存储失败的调试日志

我应该为 pandas 使用轮锉吗?Python“轮子”和“蛋”有什么区别?

Python 打包用户指南中,我可以了解到两者都是用于安装 Python 包(或库)的存档格式,但“wheel”格式与“egg”格式有一个非常显着的区别。从用户的角度来看,轮子可以包含 C 和其他扩展,而无需安装开发人员工具(编译器等)。

为什么两者都用于安装Python包?

python egg pandas python-wheel

11
推荐指数
1
解决办法
1795
查看次数

pip:为什么有时安装为egg,有时安装为文件

你在哪里可以强制pip安装为"平"而不是"蛋".

对我来说似乎是随机的.有时它会像鸡蛋一样安装,有时候会变平.

pip help install仅显示--egg强制鸡蛋安装的选项.但我找不到一个--flat选择.

这些包来自一个自己的pypiserver,并上传如下:

python setup.py sdist upload -r internal

安装期间输出点数:

Best match: foo-client 2015.2
Downloading https://installserver:40443/pypi/packages/foo_client-2015.2.tar.gz
Processing foo_client-2015.2.tar.gz
Writing /home/bar_eins_daad/tmp/easy_install-z20B7b/foo_client-2015.2/setup.cfg
Running foo_client-2015.2/setup.py -q bdist_egg --dist-dir /home/bar_eins_daad/tmp/easy_install-z20B7b/foo_client-2015.2/egg-dist-tmp-GO1snX
Run Code Online (Sandbox Code Playgroud)

我不知道为什么bdist_egg在这里使用.它是否强制创建鸡蛋安装?

setup.py不使用setuptoolsdistutils.

我们的pypiserver上的包看起来像这样:

tar -tzf packages/foo_client-2015.3.tar.gz
Run Code Online (Sandbox Code Playgroud)

内容:

foo_client-2015.2/
foo_client-2015.2/foo_client.egg-info/
foo_client-2015.2/foo_client.egg-info/SOURCES.txt
foo_client-2015.2/foo_client.egg-info/top_level.txt
foo_client-2015.2/foo_client.egg-info/dependency_links.txt
foo_client-2015.2/foo_client.egg-info/PKG-INFO
foo_client-2015.2/setup.cfg
foo_client-2015.2/PKG-INFO
foo_client-2015.2/foo_client/
foo_client-2015.2/foo_client/models.py
...
Run Code Online (Sandbox Code Playgroud)

背景

如果安装了压缩蛋,pip似乎有时会多次安装包.

更新

我发现在哪种情况下包被安装为egg:如果python setup.py develop它是通过安装的(它是一个install_requires依赖项).

如果我使用pip install foo_client它将安装平(我想要的方式).

UPDATE2

非常丑陋的部分:如果蛋安装,旧版本安装平坦不会被删除.

版本:点1.5.6

python egg pip

10
推荐指数
2
解决办法
9648
查看次数

`pip freeze`打破包安装

我正在使用dependency_links安装包.它似乎安装了软件包,但破坏了pip冻结功能(这可能意味着存在更深层次的安装问题.)我希望能够从自定义服务器下载软件包,而无需在运行之外进行任何设置setup.py.

这是我的setup.py档案:

from setuptools import setup

  setup(
      name='package'
      ,version='0.1.0'
      ,packages=['foo',
                 'bar'
                 ]
      ,long_description=''
      ,url='https://github.com/myrepo'
      ,install_requires=['numpy>=1.9.2'
                         ,'some_package'
                         ]
      ,dependency_links=[
          "http://custom_server/packages/some_package-0.1.0.tar.gz"
      ]               
  )
Run Code Online (Sandbox Code Playgroud)

安装似乎工作正常,但如果我尝试运行pip_freeze我得到下面的错误.

pip freeze

Error [Errno 20] Not a directory: '/Users/abc/anaconda/lib/python2.7/site-packages/some_package.egg' while executing command git rev-parse
Exception:
Traceback (most recent call last):
  File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/commands/freeze.py", line 70, in run
    for line in freeze(**freeze_kwargs):
  File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/operations/freeze.py", line 49, in freeze
    dependency_links
  File "/Users/myname/anaconda/lib/python2.7/site-packages/pip/__init__.py", line 235, in …
Run Code Online (Sandbox Code Playgroud)

python egg pip freeze

10
推荐指数
1
解决办法
1964
查看次数

使用setuptools创建python可执行文件

我有一个小的python应用程序,我想将其制作成类UNIX系统的可下载/可安装的可执行文件.我的印象是,setuptools将是实现这一目标的最佳方式,但不知何故,这似乎不是一项常见的任务.

我的目录结构如下所示:

myappname/
|-- setup.py
|-- myappname/
|   |-- __init__.py
|   |-- myappname.py
|   |-- src/
|      |-- __init__.py
|      |-- mainclassfile.py
|      |-- morepython/
|         |-- __init__.py
|         |-- extrapython1.py
|         |-- extrapython2.py
Run Code Online (Sandbox Code Playgroud)

包含的文件if __name__ == "__main__": 是myappname.py.这个文件在顶部有一行import src.mainclassfile.

下载后,我希望用户能够执行以下操作:

$ python setup.py build
$ python setup.py install
Run Code Online (Sandbox Code Playgroud)

然后它将是一个已安装的可执行文件,它们可以从命令行的任何位置调用:

$ myappname arg1 arg2
Run Code Online (Sandbox Code Playgroud)

我的setup.py的重要部分如下:

from setuptools import setup, find_packages
setup(
  name='code2flow',
  scripts=['myappname/myappname.py'],
  package_dir={'myappname': 'myappname'},
  packages=find_packages(),
  )
Run Code Online (Sandbox Code Playgroud)

当前状态

通过运行:

$ sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)

然后在一个新的shell中: …

python unix egg setuptools

9
推荐指数
1
解决办法
7262
查看次数

在 python 轮中只包含 *.pyc 文件

如何在 python 轮中只包含 *.pyc 文件?创建鸡蛋时,过去可以运行 python setup.py bdist_egg --exclude-source-files

鉴于鸡蛋已被轮子取代,我将如何重现类似的结果?

egg python-3.x python-wheel

9
推荐指数
1
解决办法
786
查看次数