小编Iva*_*yan的帖子

来自url的pip install包

pip install http://www.crummy.com/software/BeautifulSoup/unreleased/4.x/BeautifulSoup-4.0b.tar.gz
Run Code Online (Sandbox Code Playgroud)

这个安装包bs4,一切都好.但是,如果我将此行添加到requirements.txt

http://www.crummy.com/software/BeautifulSoup/unreleased/4.x/BeautifulSoup-4.0b.tar.gz
Run Code Online (Sandbox Code Playgroud)

并运行

pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

输出是

  Downloading/unpacking http://www.crummy.com/software/BeautifulSoup/unreleased/4.x/BeautifulSoup-4.0b.tar.gz (from -r requirements.txt (line 40))
  Downloading BeautifulSoup-4.0b.tar.gz (42Kb): 42Kb downloaded
  Running setup.py egg_info for package from http://www.crummy.com/software/BeautifulSoup/unreleased/4.x/BeautifulSoup-4.0b.tar.gz
Run Code Online (Sandbox Code Playgroud)

但是包没有安装.

>>> import bs4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named bs4
Run Code Online (Sandbox Code Playgroud)

python pip beautifulsoup

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

为什么MySQL会使用索引交集而不是组合索引?

我不时会遇到奇怪的MySQL行为.假设我有索引(type,rel,created),(type),(rel).像这样的查询的最佳选择:

SELECT id FROM tbl
WHERE rel = 3 AND type = 3
ORDER BY created;
Run Code Online (Sandbox Code Playgroud)

将是使用索引(type, rel, created).但MySQL的决定交叉索引(type)(rel),并导致更坏更流畅.这是一个例子:

mysql> EXPLAIN
    -> SELECT id FROM tbl
    -> WHERE rel = 3 AND type = 3
    -> ORDER BY created\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: tbl
         type: index_merge
possible_keys: idx_type,idx_rel,idx_rel_type_created
          key: idx_type,idx_rel
      key_len: 1,2
          ref: NULL
         rows: 4343
        Extra: Using intersect(idx_type,idx_rel); Using where; Using filesort
Run Code Online (Sandbox Code Playgroud)

和相同的查询,但添加了一个提示:

mysql> EXPLAIN
    -> SELECT id …
Run Code Online (Sandbox Code Playgroud)

mysql query-optimization sql-execution-plan database-indexes

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

模块导入多次

我首先加载模块时做一些初始化的东西.问题是它以某种方式导入了两次,我无法弄清楚原因.我认为它可能使用不同的路径导入,如下例所示:

a.py:

from apps.blog import models
...
Run Code Online (Sandbox Code Playgroud)

b.py:

from blog import models
...
Run Code Online (Sandbox Code Playgroud)

我插入print __name__我的模块,并打印出blog.models两次,因此它表明问题不在导入路径中.
那么,有多少其他原因可以多次导入模块吗?

更新:我没有提到我正在使用django.我认为这个问题与django的manage.py脚本有关:https: //docs.djangoproject.com/en/dev/releases/1.4/#updated-default-project-layout-and-manage-py

python django

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

派生类的方法需要下调其参数

这是一个示例代码:

班级基础{
上市:
    虚拟void common();
};

类派生{
上市:
    void common();
    虚拟void spec(); //添加了特定于此类的函数
};

BaseTracker类{
上市:
    void add(Base * p);
私人的:
    向量<Base *> vec;
};

类DerivedTracker {
上市:
    无效添加(派生* p);
私人的:
    向量<Derived *> vec;
};

我希望DerivedTracker和BaseTracker从Tracker类派生,因为这两个类的许多代码是相同的,除了一个方法add()。DerivedTracker :: add()方法需要调用特定于Derived类的函数。但是我不想做动态转换。我认为不是应该使用它的情况。Tracker类也应该包含容器,因此在该类中实现的功能可以使用它。

c++

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