相关疑难解决方法(0)

Python的sys.path在哪里初始化?

Python的sys.path在哪里初始化?

UPD:Python在引用PYTHONPATH之前添加了一些路径:

    >>> import sys
    >>> from pprint import pprint as p
    >>> p(sys.path)
    ['',
     'C:\\Python25\\lib\\site-packages\\setuptools-0.6c9-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\orbited-0.7.8-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\morbid-0.8.6.1-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\demjson-1.4-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\stomper-0.2.2-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\uuid-1.30-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\stompservice-0.1.0-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\cherrypy-3.0.1-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\pyorbited-0.2.2-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\flup-1.0.1-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\wsgilog-0.1-py2.5.egg',
     'c:\\testdir',
     'C:\\Windows\\system32\\python25.zip',
     'C:\\Python25\\DLLs',
     'C:\\Python25\\lib',
     'C:\\Python25\\lib\\plat-win',
     'C:\\Python25\\lib\\lib-tk',
     'C:\\Python25',
     'C:\\Python25\\lib\\site-packages',
     'C:\\Python25\\lib\\site-packages\\PIL',
     'C:\\Python25\\lib\\site-packages\\win32',
     'C:\\Python25\\lib\\site-packages\\win32\\lib',
     'C:\\Python25\\lib\\site-packages\\Pythonwin']
Run Code Online (Sandbox Code Playgroud)

我的PYTHONPATH是:

    PYTHONPATH=c:\testdir
Run Code Online (Sandbox Code Playgroud)

我想知道PYTHONPATH之前的那些路径来自哪里?

python path sys

99
推荐指数
2
解决办法
13万
查看次数

'frozenset'对象不可调用

当我尝试hashlib在任何上下文中导入时,它会抛出此错误:

File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.11-intel/egg/hashlib.py", line 115, in <module>
    """
TypeError: 'frozenset' object is not callable
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?我只是通过打开终端,运行python然后键入来生成此错误import hashlib.

python hashlib python-2.7 frozenset

13
推荐指数
1
解决办法
2万
查看次数

如何刷新sys.path?

我在作为用户执行脚本期间安装了一些软件包.这些包是第一个用户包,所以python没有添加~/.local/lib/python2.7/site-packagessys.path之前的脚本运行.我想导入这些已安装的软件包.但我不能,因为他们不在sys.path.

我怎么刷新sys.path

我正在使用python 2.7.

python packages reload sys.path python-2.7

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

根据自定义警告类别进行过滤

除了预先存在的警告类别,用户还可以定义自己的警告类,例如在下面的代码中:

$ cat mwe.py 
#!/usr/bin/env python3.5

import warnings
import pprint

class ObnoxiousWarning(UserWarning):
    pass

for i in range(3):
    print(i)
    warnings.warn("I don't like this.", ObnoxiousWarning)
Run Code Online (Sandbox Code Playgroud)

调用Python时,该-W标志控制如何过滤警告.但是当我试图让它忽略我的新鲜警告类别时,我被告知过滤器被忽略了:

$ python3.5 -W ignore::ObnoxiousWarning ./mwe.py
Invalid -W option ignored: unknown warning category: 'ObnoxiousWarning'
0
./mwe.py:11: ObnoxiousWarning: I don't like this.
  warnings.warn("I don't like this.", ObnoxiousWarning)
1
2
Run Code Online (Sandbox Code Playgroud)

如何使用命令行为自定义警告类别插入过滤器(与所有UserWarnings相反或基于警告消息进行过滤,我可以这样做)?

编辑2018-11-29:请参见问题22543:-W选项不能使用非标准类别

python warnings

7
推荐指数
1
解决办法
261
查看次数

从 Mac Os X 全局路径中删除已安装的 Python 3.5

我最近在 Mac Os X (El Capitan) 上安装了“官方”Python 3.5。在此安装过程中,Python 将全局路径更改为包含/Library/Frameworks/Python.framework/Versions/3.5/bin(这可以使用例如 看到/usr/libexec/path_helper)。

但是,我无法理解这个“集合”是在哪里完成的(在 中/etc/paths既没有也没有/etc/paths.d)。我想从全局路径中删除此条目(不删除安装本身,因为它总是有用的)。

python macos osx-elcapitan

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

从C程序中调用Python函数

我在C中有一个应用程序,在某些时候我需要解决非线性优化问题.不幸的是,AFAIK在C中的资源非常有限(请让我知道其他情况).但是在Python中使用它很简单,例如scipy.optimize.minimize.

当我试图这样做时,我遇到了一些看似非常频繁的陷阱,例如Python.h找不到,模块没有加载,函数调用时出现分段错误等.

什么是快速简便的第一计时器链接这两个程序的方式?

c c++ python python-c-api

2
推荐指数
1
解决办法
2849
查看次数