我已经安装了Nix到 Ubuntu WSL 安装中。我现在想卸载它。
该手册指出简单地“rm -rf /nix ”。
Nix 将自身添加到 $PATH 并且手册中提到了 Nix 守护进程。
当然,Nix 已经将自己添加到我系统的其他部分。
首先,我可以看到一个条目,~/.profile其中是采购~/.nix-profile/etc/profile.d/nix.sh
还有什么需要做的吗?
我在 Ubuntu 18.x 的 WSL 上运行 Nix。
我安装了 GCC,其中$ nix-env -i gcc安装了gcc-7.3.0.
我正在尝试使用 GCC 编译一个简单的 CPP 文件(由 Ferret 生成)。但 GCC 出现以下错误:
$ g++ -std=c++11 -x c++ test_1.cpp -o test_1
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
似乎我期望 Nix 包含常见的依赖项以及 GCC(build-essential等效项),但我认为这不是真的。
使用 Nix ( nix-env -qaP 'gcc', nix-env -qaP --description | grep -i gcc) 进行搜索并没有提供太多帮助。 …
我有数据描述符适用于具有__set__和的对象__get__.
但是,似乎类描述符不支持__set__.这样做会使用指定的值替换描述符对象本身.
以下代码演示了这一点
from __future__ import print_function
class Descriptor(object):
def __get__(self, obj, cls):
print('__get__')
def __set__(self, obj, value):
print('__set__')
class Class(object):
descriptor = Descriptor()
print('Object')
a = Class()
a.descriptor
a.descriptor = 1
print('Class')
Class.descriptor
Class.descriptor = 2
Run Code Online (Sandbox Code Playgroud)
哪个输出
Object
__get__
__set__
Class
__get__
Run Code Online (Sandbox Code Playgroud)
如您所见,类级别__set__没有被调用.
是否有一些解决方法或黑客(无论多么可怕)允许__set__类上的数据描述符?
为了清楚起见,我不希望调用代码来实现任何"黑客".我希望调用代码按照预期的方式工作,但任何黑客都是"幕后".
使用Python 2.7