Я использую python3. Сначала я использую random.choice в терминале, и он работает.AttributeError: объект 'module' не имеет атрибута 'choice'
Python 3.2.3 (default, Feb 27 2014, 21:31:18)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> x = [1, 2, 3]
>>> random.choice(x)
3
Но когда я запускаю его в моем сценарии, я получаю сообщение:
AttributeError: 'module' object has no attribute 'choice'
Вот код
import random
from scipy import *
from numpy import linalg as LA
import pickle
import operator
def new_pagerank_step(current_page, N, d, links):
print(links[current_page])
if random.rand() > 1 - d:
next_page = random.choice(links[current_page])
else:
next_page = random.randint(0, N)
return next_page
def pagerank_wikipedia_demo():
with open("wikilinks.pickle", "rb") as f:
titles, links = pickle.load(f)
current_page = 0
T = 1000
N = len(titles)
d = 0.4
Result = {}
result = []
for i in range(T):
result.append(current_page)
current_page = new_pagerank_step(current_page, N, d, links)
for i in range(N):
result.count(i)
Result[i] = result.count(i)/T
Sorted_Result = sorted(Result.items(), key=operator.itemgetter(1))
pagerank_wikipedia_demo()
Здесь links[i]
(i
целое) является список. Когда я запускаю этот скрипт, он не работает с сообщением, упомянутым выше.
Я также проверил, что имя сценария не random
. И есть только один файл с именем random.py
в /usr/lib/python3.2/random.py
Почему это происходит?
сделать 'импорт случайный; печать (случайный .__ файл __)' в верхней части файла, вы, вероятно, есть файл random.py на своем пути или .pyc –
Смотрите этот вопрос: Http: // StackOverflow .com/questions/25695412/module-object-has-no-attribute-choice-try-to-use-random-choice – RafaelC
Я проверил это и есть два файла. один - random.cpython-32.pyc, а один - random.py – epx