小编Tou*_*uki的帖子

如何使用virtualenv设置环境变量?

我正在尝试设置一个用python编写的外部程序/ lib - 关于debian squeeze.

当我尝试启动"环境变量未设置"时我得到的错误 - 这是开发人员的异常抛出.所以我想,我必须定义它,但在哪里?

  1. 我认为virtualenv和路径是一样的,所以我在发布时加载了.pth.它解决了一些错误,但不是全部.
  2. 我已经读过使用导出~/.bashrc但是我不确定它是否在virtualenv中读取,并且即使我不使用这个virtualenv,我也不希望这些导出被读取.
  3. 我也读过使用导出virtualenv/bin/activate,但它似乎无法正常工作.

我正在尝试安装Opus和Urbansim.

这是我在启动时得到的:

(opus-env)touki@touki:~/Projects/opus-env$ ./src/opus_gui/opus.py  
Traceback (most recent call last):
  File "./src/opus_gui/opus.py", line 14, in <module>
    from opus_gui.main.controllers.opus_gui_configuration import OpusGuiConfiguration  
  File "/home/touki/Projects/opus-test/src/opus_gui/main/controllers/opus_gui_configuration.py", line 12, in <module>
    from opus_core import paths  
  File "/home/touki/Projects/opus-test/src/opus_core/paths.py", line 44, in <module>
    OPUS_HOME = _safe_getenv('OPUS_HOME', _get_default_opus_home)  
  File "/home/touki/Projects/opus-test/src/opus_core/paths.py", line 33, in _safe_getenv
    return os.environ[key] if key in os.environ else default_func()  
  File "/home/touki/Projects/opus-test/src/opus_core/paths.py", line 36, in _get_default_opus_home  
    raise Exception('OPUS_HOME environment variable …
Run Code Online (Sandbox Code Playgroud)

python environment-variables virtualenv

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

zipfile.write():文件的相对路径,在zip归档文件中复制

使用zip文件,我指示文件位于另一个文件夹中,例如: './data/2003-2007/metropolis/Matrix_0_1_0.csv'

我的问题是,当我提取它时,文件位于中./data/2003-2007/metropolis/Matrix_0_1_0.csv,而我希望将其提取到中./

这是我的代码:

def zip_files(src, dst):
    zip_ = zipfile.ZipFile(dst, 'w')

    print src, dst

    for src_ in src:
        zip_.write(src_, os.path.relpath(src_, './'), compress_type = zipfile.ZIP_DEFLATED)

    zip_.close()
Run Code Online (Sandbox Code Playgroud)

这是src和dst的输出:

    ['./data/2003-2007/metropolis/Matrix_0_1_0.csv', './data/2003-2007/metropolis/Matrix_0_1_1.csv'] ./data/2003-2007/metropolis/csv.zip
Run Code Online (Sandbox Code Playgroud)

python path zipfile

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

classmethod作为构造函数和继承

问题很简单.如果一个类B继承一个类A并想要覆盖一个用作构造函数的'classmethod'(我想你称之为"工厂方法").问题是B.classmethod需要重用A.classmethod,但是它必须创建类A的实例,而它是类A的子类 - 因为,作为类方法,它没有自我.然后,它似乎不是设计它的正确方法.

我做的例子很简单,我通过阅读numpy数组等做了更复杂的事情.但我想这里没有信息丢失.

class A:
    def __init__(self, a):
        self.el1 = a

    @classmethod
    def from_csv(cls, csv_file):
        a = read_csv(csv_file) 
        return cls(a)

    @classmethod
    def from_hdf5 ...

class B(A):
    def __init__(self, a, b)
        A.(self, a)
        self.el2 = b

    @classmethod
    def from_csv(cls, csv_file):
        A_ = A.from_csv(csv_file) #instance of A created in B(A)
        b = [a_*2 for a_ in A.el]
        return cls(A.el, b) 
Run Code Online (Sandbox Code Playgroud)

是否有一种pythonic方式来处理?

python inheritance constructor class-design

5
推荐指数
1
解决办法
2035
查看次数

重载解除引用运算符(operator*())

这是我班上的操作员定义:

T& operator*(){
        return this->element_; 
}
Run Code Online (Sandbox Code Playgroud)

当我像这样使用它时,它被称为:

std::cout << n->operator*() << std::endl;
Run Code Online (Sandbox Code Playgroud)

如果我尝试,它不会:

std::cout << *n << std::endl;
Run Code Online (Sandbox Code Playgroud)

任何的想法 ?

提前致谢,

杰里米

c++ overloading dereference operator-keyword

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