小编pro*_*eek的帖子

用Python设置sys.path的时间是什么时候?

我跑的时候

import sys 
print sys.path
Run Code Online (Sandbox Code Playgroud)

在我的Mac(Mac OS X 10.6.5,Python 2.6.1)上,我得到以下结果.

/Library/Python/2.6/site-packages/ply-3.3-py2.6.egg
...
/Library/Python/2.6/site-packages/ipython-0.10.1-py2.6.egg
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages

/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode

它们分为5类.

  • /Library/Python/2.6/site-packages/*.egg
  • /Library/Python/2.6/site-packages
  • 框架/ Python.framework /版本/ 2.6/lib中/ python2.6的
  • 框架/ Python.framework /版本/ 2.6 /额外/ lib中/蟒蛇
  • 来自PYTHONPATH环境变量的PATH.

我可以使用代码添加更多路径

sys.path.insert(0, MORE_PATH)
Run Code Online (Sandbox Code Playgroud)
  • 什么例程设置这些路径,什么时候?
  • 有些路径是用python源代码构建的吗?
  • 是否有可能忽略使用'sys.path.insert'插入的路径?我对此很好奇,就像mod_wsgi一样,我发现'sys.path.insert'找不到路径.我问了另一个帖子这个问题.

添加

根据Michael的回答,我调查了site.py,并得到了以下代码.

def addsitepackages(known_paths):
    """Add site-packages (and possibly site-python) to sys.path"""
    sitedirs = []
    seen = []

    for prefix in PREFIXES:
        if not prefix or prefix in seen:
            continue
        seen.append(prefix)

        if sys.platform …
Run Code Online (Sandbox Code Playgroud)

python path

64
推荐指数
3
解决办法
5万
查看次数

Python中的"哪个"等效函数

我需要通过运行which abc命令来设置环境.是否有Python等效的which命令功能?这是我的代码.

cmd = ["which","abc"]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
res = p.stdout.readlines()
if len(res) == 0: return False
return True
Run Code Online (Sandbox Code Playgroud)

python command which

64
推荐指数
4
解决办法
4万
查看次数

为什么这个Ruby对象既有to_s又检查看起来做同样事情的方法?

为什么这个Ruby对象to_sinspect看起来做同样事情的方法?

p方法调用inspect并放置/打印to_s用于表示对象的调用.

如果我跑

class Graph
  def initialize
    @nodeArray = Array.new
    @wireArray = Array.new
  end
  def to_s # called with print / puts
    "Graph : #{@nodeArray.size}"
  end
  def inspect # called with p
    "G"
  end
end

if __FILE__ == $0
  gr = Graph.new
  p gr
  print gr
  puts gr
end
Run Code Online (Sandbox Code Playgroud)

我明白了

G
Graph : 0
Graph : 0
Run Code Online (Sandbox Code Playgroud)
  • 那么,为什么Ruby有两个函数做同样的事情呢?to_s和之间有什么区别inspect
  • 这有什么之间的区别puts,print以及p

如果我注释掉 …

ruby printing object

62
推荐指数
5
解决办法
4万
查看次数

git如何处理二进制文件?

  • 如果某些文件是二进制文件,我是否必须设置一些东西来告诉git,就像svn一样?或者,git只能自动处理二进制数据?
  • 如果我更改二进制文件,以便我有100个二进制修订版,那么git会在存储库中单独存储所有100个版本吗?
  • 什么是git的子模块?

git binaryfiles

60
推荐指数
4
解决办法
4万
查看次数

Java中System.out.println的含义是什么?

这是类名称空间中的静态println函数吗?outSystem

namespace System {
  class out {
    static println ...
  }

我怎么能解释这个名字?在JRE中定义了这个函数?在java.lang.System/ java.lang.Object

java system.out

59
推荐指数
5
解决办法
21万
查看次数

为什么有.sln,.suo和.csproj文件?

我开始使用Visual Studio 2010中,我与C#程序完成后,我看到有.sln,并.suo在项目的根目录中的文件和.csproj子目录中的文件.这些文件是为了什么?

我需要识别要放入Git存储库的文件.连同我创建的源代码/文档,我猜这三个文件是我唯一需要处理的文件.但是,我不确定我是否正在跟踪正确的文件.

添加

个人宏文件怎么样?我有Emacs键开关宏,.sln文件或.csproj文件有这个宏吗?

git visual-studio

58
推荐指数
3
解决办法
6万
查看次数

Python的列表理解与.NET LINQ

以下简单的LINQ代码

string[] words = { "hello", "wonderful", "linq", "beautiful", "world" };

// Get only short words
var shortWords =
  from word in words
  where word.Length <= 5
  select word;

// Print each word out
shortWords.Dump();
Run Code Online (Sandbox Code Playgroud)

可以使用列表推导将其翻译成python,如下所示.

words = ["hello", "wonderful", "linq", "beautiful", "world"]
shortWords = [x for x in words if len(x) <=5]
print shortWords
Run Code Online (Sandbox Code Playgroud)
  • LINQ是另一个实现列表理解的想法吗?
  • LINQ可以做什么样的例子但是列表理解不能做.

c# python linq list-comprehension

54
推荐指数
3
解决办法
2万
查看次数

如何调试elisp?

通常,最简单的调试方法是使用printf.我该怎么做来调试emacs-lisp?如何从elisp打印emacs编辑器?或者有没有办法调试elisp代码?

例如,如何检查以下代码是否在.emacs文件中运行?

(load "auctex.el" nil t t)
Run Code Online (Sandbox Code Playgroud)

debugging emacs elisp

53
推荐指数
4
解决办法
2万
查看次数

在Mac OS X上使用DYLD_LIBRARY_PATH是否可以?而且,它的动态库搜索算法是什么?

我读了一些不鼓励使用DYLD_LIBRARY_PATH的文章,因为动态库的路径应该使用-install_name,@ aptath和@loader_path来修复.

在制作在Linux和Mac OS X上运行的程序方面,Mac OS X的DYLD_LIBRARY_PATH正好与Linux的LD_LIBRARY_PATH完全相同.而且,我们可以(几乎)共享同一个没有-install_name和@rpath的make文件.

  • 在Mac OS X上使用DYLD_LIBRARY_PATH可以吗?
  • 当二进制文件找不到动态库时,Mac OS X的动态库搜索算法是什么?当前目录 - > DYLD_LIBRARY_PATH目录......?

language-agnostic macos dll dynamic-linking

51
推荐指数
3
解决办法
7万
查看次数

卸载装配了Assembly.LoadFrom()的程序集

我需要检查加载dll后运行GetTypes()的时间量.代码如下.

Assembly assem = Assembly.LoadFrom(file);
sw = Stopwatch.StartNew();
var types1 = assem.GetTypes();
sw.Stop();
double time1 = sw.Elapsed.TotalMilliseconds;
Run Code Online (Sandbox Code Playgroud)

我想卸载并重新加载dll以检查再次运行GetTypes()所花费的时间.

  • 我该如何卸载它?assem = null够好吗?
  • 是否有一种明确的方法来调用垃圾收集器来回收分配给assem的资源?

c# garbage-collection load gettype

51
推荐指数
3
解决办法
4万
查看次数