내 맞춤 NYT 모듈을 가져올 수 없습니다. 다음 내가 맥에있어로 내 프로젝트 구조는 다음과 같습니다맞춤 모듈 가져 오기 문제
articulation/
articulation/
__init__.py # empty
lib/
nyt.py
__init__.py # empty
tests/
test_nyt.py
__init__.py # empty
내가 첫 번째 부모 디렉토리에서 python articulation/tests/test_nyt.py
을 실행 해보십시오, 나는 또한 시도
File "articulation/tests/test_nyt.py", line 5, in <module>
from articulation.lib.nyt import NYT
ImportError: No module named articulation.lib.nyt
얻을
(venv) Ericas-MacBook-Pro:articulation edohring$ Python -m articulation/tests/test_nyt.py
/Users/edohring/Desktop/articulation/venv/bin/Python: Import by filename is not supported.
test_nyt.py
import sys
sys.path.insert(0, '../../')
import unittest
#from mock import patch
# TODO: store example as fixture and complete test
from articulation.lib.nyt import NYT
class TestNYT(unittest.TestCase):
@patch('articulation.lib.nyt.NYT.fetch')
def test_nyt(self):
print "hi"
#assert issubclass(NYT, Article)
# self.assertTrue(sour_surprise.title == '')"""
nyt.py
from __future__ import division
import regex as re
import string
import urllib2
from collections import Counter
from bs4 import BeautifulSoup
from cookielib import CookieJar
PARSER_TYPE = 'html.parser'
class NYT:
def __init__(self, title, url):
self.url = url
self.title = title
self.words = get_words(url)
def get_words(url):
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
p = opener.open(url)
soup = BeautifulSoup(p.read(), PARSER_TYPE)
# title = soup.html.head.title.string
letters = soup.find_all('p', class_='story-body-text story-content')
if len(letters)==0:
letters = soup.find_all('p', class_='paragraph--story')
if len(letters)==0:
letters = soup.find_all('p', class_='story-body-text',)
words = Counter()
for element in letters:
a = element.get_text().split()
for c in a:
c = ''.join(ch for ch in c if c.isalpha())
c = c.lower()
if len(c) > 0:
words[c] += 1
return words
def test_nyt():
china_apple_stores = NYT('title_test', 'http://www.nytimes.com/2016/12/29/technology/iphone-china-apple-stores.html?_r=0')
assert(len(china_apple_stores.words) > 0)
# print china_apple_stores.words
fri_brief = NYT('Russia, Syria, 2017: Your Friday Briefing', 'http://www.nytimes.com/2016/12/30/briefing/us-briefing-russia-syria-2017.html')
assert(fri_brief.title == 'Russia, Syria, 2017: Your Friday Briefing')
assert(fri_brief.url == 'http://www.nytimes.com/2016/12/30/briefing/us-briefing-russia-syria-2017.html')
assert(len(fri_brief.words) > 0)
vet = NYT('title_test', 'http://lens.blogs.nytimes.com/2017/01/03/a-love-story-and-twins-for-a-combat-veteran-amputee/')
assert(len(vet.words)>0)
print "All NYT Tests Passed"
#test_nyt()
다음을 시도했지만 아무 것도 작동하지 않는 것 같습니다.이 문제를 해결하는 방법을 아는 사람이 있습니까? -> 도움 안됨
- Entering Memory 파이썬에서이 코드를 찾을 수 없습니다. 파이썬 2를 사용하고 있기 때문일 수 있습니다. 문제가 해결되면 더 많은 것을 게시 할 수 있습니다. -이 이렇게
상대적인 수입은 (초기 학습 곡선으로도 그렇다하더라도) 매우 간단합니다 :'from ..lib.nyt import NYT' –
슬래시로 판단하면, 당신은 비 윈도우 시스템에 있습니다. 현재 디렉토리가 파이썬 경로에 없을 수도 있습니다. 커맨드 라인에서'python -c 'import articulation''을 실행하고 에러가 있는지보십시오. –
상대 가져 오기를 시도했지만 작동하지 않았습니다. (artvelling/tests/test_nyt.py) 추적 (가장 최근에 마지막으로 호출) : 관절 edohring $의 PWD /사용자/edohring/데스크탑/관절 –