我希望某个模块的接口(interface)包含一定数量的函数和类(仅此而已)。我可以在一个文件中实现所有这些,并且很容易获得我想要的界面。但是因为有很多代码,我宁愿把整个东西分成几个文件,比如说mypackage/__init__.pya.pyb.pyc.pyd.py无论如何,为了获得所需的接口(interface),我为从a、b导入所有公共(public)符号的包定义了一个__init__.py文件,c和d:fromaimportfunc_a1,func_a2,ClassA1,ClassA2frombimportfunc_b1,func_b2,ClassB1,ClassB2fromc
使用PyCharm全新安装Ubuntu13.10,在设置python解释器时,我选择了“installsetuptools”,然后是“installpip”。现在,如果我尝试使用pip做任何事情,我会得到以下信息:ciaran@ciaran-desktop:~/pycharm/bin$pipTraceback(mostrecentcalllast):File"/usr/local/bin/pip",line9,inload_entry_point('pip==1.4.1','console_scripts','pip')()File"build/bdist.linux-x86_64/e
我想用pip安装django-dbsettings但它会导致以下错误:Downloadingdjango-dbsettings-0.7.4.tar.gzRunningsetup.pyegg_infoforpackagedjango-dbsettingsTraceback(mostrecentcalllast):File"",line16,inFile"/path/virtualenv/build/django-dbsettings/setup.py",line23,inpackages=find_packages(include=['dbsettings']),TypeError:fi
我已经将我的Python包上传到PyPI。但是现在我制作了我的包的新版本并且需要上传它。我尝试取得与第一次上传包时相同的进展。但给我这个错误:HTTPError:400ClientError:Filealreadyexists.Seehttps://pypi.org/help/#file-name-reuseforurl:https://upload.pypi.org/legacy现在,如何无误地上传新版本?! 最佳答案 PyPI不允许重复使用分发文件名(项目名称+版本号+分发类型)。这确保了给定项目的给定版本的给定分发将始终解析为
我刚刚完成了我的第一个(次要)Python项目,我的老板希望我很好地打包它,以便可以轻松地从其他程序中分发和调用它。他建议我研究鸡蛋。我一直在谷歌搜索和阅读,但我只是感到困惑。我查看的大多数网站都解释了如何使用已经创建的Pythonegg,或者如何从setup.py文件(我还没有)创建egg。我现在只有一个Eclipsepydev项目,其中包含大约4个模块和一个设置/配置文件。在简单的步骤中,我如何将其构建到文件夹/包中并将其编译成一个鸡蛋?一旦它是一个鸡蛋,我需要了解关于部署/构建/使用它的哪些信息?我真的是从头开始,所以不要以为我什么都知道;简单的分步说明将非常有帮助...这些是我
虽然在Python中将“子”模块导入另一个模块并列出其属性是相当简单的,但是当您想要导入所有子模块时,它会变得稍微困难一些。我正在为现有的3D应用程序构建工具库。每个工具都有自己的菜单项和子菜单。我希望该工具负责创建自己的菜单,因为其中许多菜单会根据上下文和模板进行更改。我希望我的基本模块能够找到所有子模块并检查create_menu()函数并在找到时调用它。发现所有子模块的最简单方法是什么? 最佳答案 我认为做这种插件的最好方法是使用entry_points和APIforqueryingthem.
我的PYTHONPATH中有一个看起来像这样的包:package/__init__.pymodule.pyprint'Loadingmodule'如果我从package/目录运行Python(或在此目录中编写另一个模块)并键入importmodule它加载module.py并按预期打印出“加载模块”。但是,如果我接着输入frompackageimportmodule它加载module.py并打印“加载模块”再次,这是我不期望的。这样做的理由是什么?注意:我想我从技术上理解为什么Python这样做,因为importmodule的sys.modules键只是"module",但对于来自pa
背景与我一起工作的小组一直在使用和开发一个Python包,出于这个问题的目的,我将其称为foobuilder。我们使用我们为用户提供的私有(private)RPM和Deb存储库为Linux系统提供更新。最近,PyPi中添加了一个同名的公共(public)包。它还打包在公共(public)Debian存储库等地方。由于我们不公开宣传我们的套餐,因此出现同名套餐是可以理解的。疑虑这对于foobuilder来说似乎是个大问题,因为在某个地方,用户可能会尝试安装我们的foobuilder而公共(public)foobuilder软件包安装在同一系统上。除了Python中的明显问题外,我猜想将我
如何将Python模块与预编译的.so库打包在一起?具体来说,我该如何编写setup.py以便在Python中执行此操作>>>importtop_secret_wrapper不用设置LD_LIBRARY_PATH就能轻松找到top_secret.so?在我的模块开发环境中,我有以下文件结构:.├──top_secret_wrapper│ ├──top_secret.so│ └──__init__.py└──setup.py在__init__.py中,我有类似的东西:importtop_secret这是我的setup.pyfromsetuptoolsimportsetup,Exten
在我的根环境中运行$jupyternotebook然后在浏览器中单击“Conda”选项卡。这总是用来列出我的conda环境和其中的包。现在我收到以下错误。我最近创建和删除了一些conda环境,这可能是相关的。唯一的控制台输出是[W10:30:20.948NotebookApp]404GET/environments?_=1476811818902(::1)13.19msreferer=http://localhost:8888/tree[W10:30:20.951NotebookApp]404GET/packages/available?_=1476811818903(::1)1.77