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) 我不时会遇到奇怪的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
我首先加载模块时做一些初始化的东西.问题是它以某种方式导入了两次,我无法弄清楚原因.我认为它可能使用不同的路径导入,如下例所示:
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
这是一个示例代码:
班级基础{
上市:
虚拟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类也应该包含容器,因此在该类中实现的功能可以使用它。