小编Kau*_*ose的帖子

创建 Python 包中定义的 console_scripts 列表

我正在使用 setup_tools 和 setup.py 来分发工具包。用户看到的包的表面是使用 console_scripts 入口点安装的命令行脚本的集合。

我想要一个额外的脚本,用户可以执行该脚本来查看包已安装的 console_scripts 列表。

有没有原则性的方法来做到这一点?一种简单的方法是从 setup.py 中的“console_scripts”条目复制列表,但这很容易出错,因为修改包时必须更新列表。

我当前的解决方案是实际读取 setup.py 脚本并解析 console_scripts 条目。这看起来不像Pythonic。

因此我的问题是是否有一个原则性的方法可以做到这一点。谢谢!

python setuptools

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

如何在std :: pair中返回std :: lock_guard

当我从函数中返回a时std::lock_guard,std::pair我会得到可怕的错误.但是当我将它打包成一个类时,我没有任何问题(编译并按预期工作).我不明白为什么.细节如下:

我设计了一个小模板类,以便方便地锁定和解锁共享对象.它不是特别创新,但C++ 17允许它非常紧凑并且代码读/写友好:

template <typename T> class Locked {
public:
    Locked(T& _object, std::mutex& _mutex)
        : object(_object)
        , lock(_mutex)
    {
    }

    T&                          object;
    std::lock_guard<std::mutex> lock;
};

template <typename T> class Lockable {
public:
    Locked<T>       borrow() { return Locked(object, mutex); }
    Locked<const T> borrow() const { return Locked(object, mutex); }

private:
    T                  object;
    mutable std::mutex mutex;
};
Run Code Online (Sandbox Code Playgroud)

它可以像:

int main()
{
    Lockable<std::vector<int>> lv;

    auto [vec, lock] = lv.borrow();

    std::cout << vec.size() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是这个.这Locked堂课很瘦.我以为我可以使用std::pair …

c++ c++17

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

标签 统计

c++ ×1

c++17 ×1

python ×1

setuptools ×1