许多第三方Python模块都有一个保存模块版本信息的属性(通常是module.VERSION或module.__version__ ),但有些则不然。 这种模块的具体例子是libxslt和libxml2。 我需要检查在运行时正在使用这些模块的正确版本。 有没有办法做到这一点? 一个潜在的解决scheme将是在运行时读取源代码,对其进行散列,然后将其与已知版本的散列进行比较,但这很糟糕。 有更好的解决scheme吗?
这个最近的问题让我思考。 在我尝试的大多数Linux发行版中,通过包pipe理器可以使用一些Perl模块。 其他人当然不是。 有一段时间我会用我的包pipe理器,每当我需要安装一些CPAN模块,以确定包是否可用,并安装它时。 显而易见的好处是,只要新版本的软件包可用,就可以更新模块。 但是,如果模块不能以预封装的forms提供,并且该模块存在依赖关系,则会遇到麻烦。 每当cpan shell询问是否应该依赖依赖时,打包你的包pipe理器可能会相当累人。 另一个缺点是预封装模块的版本。 如果您正在运行Debian或Ubuntu,您很快就会发现,您将无法生活在stream血的边缘,就像许多CPAN模块作者似乎所做的那样。 Linux上的其他Perl人员如何处理这个问题? 你只是忽略你的软件包pipe理者所提供的? 是否有任何工具可以使(例如)更好的队友? 或者你只是不通过cpanshell安装任何东西?
我正在尝试安装和使用Evernote模块( https://github.com/evernote/evernote-sdk-python )。 我跑pip install evernote ,它说,安装工作。 我可以确认evernote模块存在于/usr/local/lib/python2.7/site-packages 。 但是,当我尝试运行python -c "import evernote"我得到以下错误: Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named evernote 这是我的.bash-profile的内容: [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* # Setting PATH for Python 3.3 # The […]
有没有一种简单的方法来find所有的模块是Python包的一部分? 我发现了这个老的讨论 ,这并不是真正的结论,但是我很想在我推出基于os.listdir()的解决scheme之前有一个明确的答案。
我知道全局variables是不好的。 但是,如果我在我的框架中的40个文件中使用节点的模块“util”,那么把它声明为一个全局variables是不是更好: util = require('util'); 在index.js文件中,而不是在40个文件中写入该行? 因为我经常在每个文件中使用相同的5-10个模块,这样可以节省大量的时间,而不是始终复制粘贴。 在这种情况下干不好?
根据http://www.faqs.org/docs/diveintopython/fileinfo_private.html : 像大多数语言一样,Python具有私有元素的概念: 私有函数,不能从模块外调用 但是,如果我定义了两个文件: #a.py __num=1 和: #b.py import a print a.__num 当我运行b.py它打印出1没有任何例外。 diveintopython错了,还是我误解了一些东西? 有没有办法做一个模块的function定义为私人?
我一直在学习有关node.js和模块,似乎无法让Underscore库正常工作…似乎是我第一次使用Underscore函数,它覆盖_对象的结果我的函数调用。 任何人都知道发生了什么事? 例如,以下是来自node.js REPL的会话: Admin-MacBook-Pro:test admin$ node > require("./underscore-min") { [Function] _: [Circular], VERSION: '1.1.4', forEach: [Function], each: [Function], map: [Function], inject: [Function], (…more functions…) templateSettings: { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g }, template: [Function] } > _.max([1,2,3]) 3 > _.max([4,5,6]) TypeError: Object 3 has no method 'max' at [object Context]:1:3 at Interface.<anonymous> (repl.js:171:22) at Interface.emit […]
我在我的Mac(10.8.3)上有2个python:默认和自制软件的2.7版本。 到目前为止,我可以安装模块并将其与我的brew python一起使用。 我用brew install mapnik (mapnik-2.1.0) brew install mapnik ,编译正确。 但是,如果我打开python并inputimport mapnik ,则出现以下错误,python退出: >>> import mapnik Fatal Python error: PyThreadState_Get: no current thread Abort trap: 6 Mac OS x还显示一个错误窗口,其中包含以下内容: Process: Python [60666] Path: /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python Identifier: Python Version: 2.7.3 (2.7.3) Code Type: X86-64 (Native) Parent Process: bash [60454] User ID: 501 Date/Time: 2013-03-28 10:21:08.535 +0100 […]
在尝试做类似于由Alex Martelli命名为“ Constants in Python ”的ActiveState配方时,我遇到了一个意想不到的副作用(在Python 2.7中),它将一个类实例分配给sys.modules的条目 – 即这样做显然会将__name__的值更改为None如以下代码段所示(这会中断配方中的部分代码): class _test(object): pass import sys print '# __name__: %r' % __name__ # __name__: '__main__' sys.modules[__name__] = _test() print '# __name__: %r' % __name__ # __name__: None if __name__ == '__main__': # never executes… import test print "done" 我想了解为什么会发生这种情况。 我不相信这是Python 2.6和更早版本的方式,因为我有一些旧的代码,显然if __name__ == '__main__':条件按照预期工作(但不再是)。 FWIW,我也注意到_test这个名字在赋值之后也从类对象反弹到None 。 对我来说,他们正在被反弹到None而不是完全消失,这似乎很奇怪。 […]
我正在使用ECMAScript6模块。 从下面的选项中,从模块导出/导入多个方法的正确方法是什么? 单一类的静态方法: //—— myClass.js —— export default class myClass { static myMethod1() { console.log('foo'); } static myMethod2(args…) { console.log('bar'); } } //—— app.js —— import myClass from 'myClass'; myClass.myMethod1(); //foo 多个导出的方法: //—— myMethods.js —— export function myMethod1() { console.log('foo'); } export function myMethod2() { console.log('bar'); } //—— app.js —— import {myMethod1, myMethod2} from 'myMethods'; […]