<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
>

<channel>
	<title>Afternoon stroll</title>
	<atom:link href="http://kastalien.org/wp/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://kastalien.org/wp</link>
	<description>Program Programming Programmer</description>
	<lastBuildDate>
	Tue, 21 Jun 2022 06:04:07 +0000	</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.1.18</generator>
<site xmlns="com-wordpress:feed-additions:1">63739931</site>	<item>
		<title>코드냄새 : 메소드나 함수의 반환 값을 튜플로 할 때</title>
		<link>http://kastalien.org/wp/?p=636</link>
				<comments>http://kastalien.org/wp/?p=636#respond</comments>
				<pubDate>Fri, 27 Nov 2015 03:42:01 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[미분류]]></category>
		<category><![CDATA[code smell]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=636</guid>
				<description><![CDATA[혹시 Exception을 raise 하는 게 더 적합한데 괜히 여러 개의 반환값을 쓰고 있는 것은 아닌지 의심해보자]]></description>
								<content:encoded><![CDATA[<p>혹시 Exception을 raise 하는 게 더 적합한데 괜히 여러 개의 반환값을 쓰고 있는 것은 아닌지 의심해보자</p>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=636</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">636</post-id>	</item>
		<item>
		<title>[couchbase] bucket 복사하기</title>
		<link>http://kastalien.org/wp/?p=628</link>
				<comments>http://kastalien.org/wp/?p=628#respond</comments>
				<pubDate>Tue, 24 Nov 2015 09:11:19 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[couchbase]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[restore]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=628</guid>
				<description><![CDATA[주의  : 개발 테스트로 진행한 것. Production에서 사용할 수 있는 지는 확인이 필요하다 단순히 내 개발 머신에서 bucket 복사를 하고 싶었음. 버킷 생성할 때 다른 버킷을 기반으로 생성할 수 있는 방법이 없다. 백업하고 cbbackup.exe http://localhost:8091 백업을_저장할_폴더_경로 --single-node -b 백업할_버킷이름 리스토어하면 된다 cbrestore.exe --bucket-source 백업한_버킷이름 --bucket-destination 데이터를_풀_버킷_이름 백업을_저장한_폴더_경로 http://localhost:8091 reference http://docs.couchbase.com/admin/admin/Tasks/restore-cbrestore.html]]></description>
								<content:encoded><![CDATA[<blockquote><p>주의  : 개발 테스트로 진행한 것. Production에서 사용할 수 있는 지는 확인이 필요하다</p></blockquote>
<p>단순히 내 개발 머신에서 bucket 복사를 하고 싶었음. 버킷 생성할 때 다른 버킷을 기반으로 생성할 수 있는 방법이 없다.</p>
<p>백업하고</p>
<blockquote>
<pre>cbbackup.exe http://localhost:8091 백업을_저장할_폴더_경로 --single-node -b 백업할_버킷이름</pre>
</blockquote>
<p>리스토어하면 된다</p>
<blockquote>
<pre>cbrestore.exe --bucket-source 백업한_버킷이름 --bucket-destination 데이터를_풀_버킷_이름 백업을_저장한_폴더_경로 http://localhost:8091</pre>
</blockquote>
<p>reference<br />
http://docs.couchbase.com/admin/admin/Tasks/restore-cbrestore.html</p>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=628</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">628</post-id>	</item>
		<item>
		<title>[couchbase/n1ql] select 결과를 insert 하기</title>
		<link>http://kastalien.org/wp/?p=623</link>
				<comments>http://kastalien.org/wp/?p=623#respond</comments>
				<pubDate>Tue, 24 Nov 2015 05:50:17 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[couchbase]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[n1ql]]></category>
		<category><![CDATA[select]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=623</guid>
				<description><![CDATA[sql 과 비슷하다. INSERT INTO 버킷이름 (KEY k_alias, VALUE v_alias) select &#8216;test_key::001&#8217; as k_alias, {&#8216;member&#8217; : &#8216;value&#8217;} as v_alias http://developer.couchbase.com/documentation/server/4.0/n1ql/n1ql-language-reference/insert.html http://developer.couchbase.com/documentation/server/4.1-dp/developer-guide/covering-indexes.html PS : document에 예제 좀 많이 넣어주면 좋겠다.]]></description>
								<content:encoded><![CDATA[<p>sql 과 비슷하다.</p>
<blockquote><p>INSERT INTO 버킷이름 (KEY k_alias, VALUE v_alias) select &#8216;test_key::001&#8217; as k_alias, {&#8216;member&#8217; : &#8216;value&#8217;} as v_alias</p></blockquote>
<p><a href="http://developer.couchbase.com/documentation/server/4.0/n1ql/n1ql-language-reference/insert.html" target="_blank">http://developer.couchbase.com/documentation/server/4.0/n1ql/n1ql-language-reference/insert.html<br />
</a><a href="http://developer.couchbase.com/documentation/server/4.1-dp/developer-guide/covering-indexes.html" target="_blank">http://developer.couchbase.com/documentation/server/4.1-dp/developer-guide/covering-indexes.html</a></p>
<p>PS : document에 예제 좀 많이 넣어주면 좋겠다.</p>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=623</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">623</post-id>	</item>
		<item>
		<title>[couchbase] 4.0 잘쓰고 있었는데 indexer 랑 cbq-engine이 없어졌다?</title>
		<link>http://kastalien.org/wp/?p=618</link>
				<comments>http://kastalien.org/wp/?p=618#respond</comments>
				<pubDate>Tue, 24 Nov 2015 05:44:38 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[couchbase]]></category>
		<category><![CDATA[cbq-engine]]></category>
		<category><![CDATA[indexer]]></category>
		<category><![CDATA[n1ql]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=618</guid>
				<description><![CDATA[개인 개발 머신에서 indexer와 cbq-engine이 안뜸.. (아니 한동안 잘 썼다고!!) 재시작해도 안올라옴 검색해봐도 별 얘기 없음 다시 설치해도 안올라옴 하나하나 해볼 수 없어서, 막 던져봄 cb4.0 삭제 후 레지스트리에서 couchbase 관련 키 삭제 program files / couchbase 폴더 삭제 설치 시 안티바이러스 off (프로세스에 kasper 어쩌구가 계속 떠있는 것으로 봐선 내가 내린 건 설정 UI &#8230; <a href="http://kastalien.org/wp/?p=618" class="more-link"><span class="screen-reader-text">[couchbase] 4.0 잘쓰고 있었는데 indexer 랑 cbq-engine이 없어졌다?</span> 더보기</a>]]></description>
								<content:encoded><![CDATA[<p>개인 개발 머신에서 indexer와 cbq-engine이 안뜸.. (아니 한동안 잘 썼다고!!)</p>
<ul>
<li>재시작해도 안올라옴</li>
<li>검색해봐도 별 얘기 없음</li>
<li>다시 설치해도 안올라옴</li>
<li>하나하나 해볼 수 없어서, 막 던져봄
<ul>
<li>cb4.0 삭제 후 레지스트리에서 couchbase 관련 키 삭제</li>
<li>program files / couchbase 폴더 삭제</li>
<li>설치 시 안티바이러스 off (프로세스에 kasper 어쩌구가 계속 떠있는 것으로 봐선 내가 내린 건 설정 UI 프로세스인가..)</li>
<li>다시 설치 시 index replicas 체크</li>
</ul>
</li>
<li>이렇게 하고 나선 다시 설치했을 때 indexer 랑 cbq-engine 이랑 다시 돌아옴 =_=;;;</li>
<li>다시 테스트 해보기는 귀찮으니 다음에 또 이러면 하나씩 해보겠다</li>
</ul>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=618</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">618</post-id>	</item>
		<item>
		<title>[python] owyl 프로젝트를 python 3 에서 실행하자</title>
		<link>http://kastalien.org/wp/?p=612</link>
				<comments>http://kastalien.org/wp/?p=612#respond</comments>
				<pubDate>Fri, 06 Nov 2015 08:43:51 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[미분류]]></category>
		<category><![CDATA[behavior tree]]></category>
		<category><![CDATA[cocos]]></category>
		<category><![CDATA[cython]]></category>
		<category><![CDATA[pyglet]]></category>
		<category><![CDATA[rabbyt]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=612</guid>
				<description><![CDATA[owyl : A python behavior tree for implementing fast and flexible AI owyl은 파이썬용 행동트리 구현체다. 행동트리를 이해하는 데 시각화된 예제가 필요하여 실행해보았다. (치즈샵에서 behavior tree 로 유일하게 검색된 이유이기도 하고..) 한동안 업데이트가 없는 것을 보니 앞으로도 없을 듯 하다. 약간의 감상평을 하자면 코루틴 없이 generator 로만 코딩을 해서 그런지 복잡하더라. python 3 에서 실행해보기 위해 진행한 것을 기록한다. python &#8230; <a href="http://kastalien.org/wp/?p=612" class="more-link"><span class="screen-reader-text">[python] owyl 프로젝트를 python 3 에서 실행하자</span> 더보기</a>]]></description>
								<content:encoded><![CDATA[<blockquote><p>owyl : A python behavior tree for implementing fast and flexible AI</p></blockquote>
<p>owyl은 파이썬용 행동트리 구현체다. 행동트리를 이해하는 데 시각화된 예제가 필요하여 실행해보았다. (치즈샵에서 behavior tree 로 유일하게 검색된 이유이기도 하고..) 한동안 업데이트가 없는 것을 보니 앞으로도 없을 듯 하다. 약간의 감상평을 하자면 코루틴 없이 generator 로만 코딩을 해서 그런지 복잡하더라.</p>
<p>python 3 에서 실행해보기 위해 진행한 것을 기록한다. python 3 전용으로 실행하기 위해 살짝 변경 해놓은 소스를 이곳<sup class='footnote'><a href='#fn-612-1' id='fnref-612-1' onclick='return fdfootnote_show(612)'>1</a></sup>에 올려놨음. for_python_3 브랜치를 이용하면 된다.</p>
<ol>
<li>examples/boids.py 를 python 3.4.3 에서 실행하면 pyglet<sup class='footnote'><a href='#fn-612-2' id='fnref-612-2' onclick='return fdfootnote_show(612)'>2</a></sup>을 임포트할 수 없다는 에러가 발생<br />
(https://bitbucket.org/pyglet/pyglet/wiki/Home)</li>
<li>pyglet 설치하자<br />
<blockquote><p>pip install pyglet</p></blockquote>
</li>
<li>다시 boids.py 를 실행하면 cocos 를 임포트할 수 없다는 에러가 발생</li>
<li>cocos<sup class='footnote'><a href='#fn-612-3' id='fnref-612-3' onclick='return fdfootnote_show(612)'>3</a></sup> 를 설치하자<br />
<blockquote><p>pip install cocos2d</p></blockquote>
</li>
<li>다시 boids.py 를 실행하면 rabbyt 를 임포트할 수 없다는 에러가 발생</li>
<li>rabbyt<sup class='footnote'><a href='#fn-612-4' id='fnref-612-4' onclick='return fdfootnote_show(612)'>4</a></sup> 를 설치하자<br />
<blockquote><p>pip install Rabbyt</p></blockquote>
</li>
<li>다음의 에러를 출력하고 설치 실패<br />
<blockquote><p>File &#8220;&lt;string&gt;&#8221;, line 20, in &lt;module&gt;<br />
File &#8220;C:\Users\ADMINI~1\AppData\Local\Temp\pip-build-ukorogxl\Rabbyt\setup.py&#8221;, line 17<br />
print &#8220;*&#8221;*80<br />
^<br />
SyntaxError: Missing parentheses in call to &#8216;print&#8217;</p></blockquote>
</li>
<li>Rabbyt 가 python 3.x 를 지원안해서 설치가 안되는 것. 홈페이지<sup class='footnote'><a href='#fn-612-5' id='fnref-612-5' onclick='return fdfootnote_show(612)'>5</a></sup>를 가보니 더 이상 개발을 종료하였고, lib2d 를 대신 만들고 있는데 Rabbyt 와 호환이 안된다고 한다. 다행하게도 Ryex 라는 사람이 Rabbyt 의 python 3 포팅을 했다.</li>
<li>https://github.com/Ryex/Rabbyt 로 다시 설치. github 에 있는 download zip 버튼의 링크를 install 뒤에 쓰면 된다.<br />
pip install https://github.com/Ryex/Rabbyt/archive/master.zip</li>
<li>다음의 에러를 출력하고 설치 실패<br />
<blockquote><p>Complete output from command python setup.py egg_info:<br />
Traceback (most recent call last):<br />
File &#8220;&lt;string&gt;&#8221;, line 20, in &lt;module&gt;<br />
File &#8220;C:\Users\ADMINI~1\AppData\Local\Temp\pip-u1mmdmpo-build\setup.py&#8221;, line 6, in &lt;module&gt;<br />
from Cython.Distutils import build_ext<br />
ImportError: No module named &#8216;Cython&#8217;</p></blockquote>
</li>
<li>python 3 이상 버전은 cython이 필요하다. (from https://github.com/Ryex/Rabbyt ) </li>
<li>cython 설치하자<br />
<blockquote><p>pip install cython</p></blockquote>
</li>
<li>Ryex/Rabbyt 다시 설치<br />
<blockquote><p>pip install https://github.com/Ryex/Rabbyt/archive/master.zip</p></blockquote>
</li>
<li>다음의 에러를 출력하고 설치 실패<br />
<blockquote><p>&#8230;위에 한참 있음 &#8230;<br />
File &#8220;C:\venv\for_owyl\lib\site-packages\setuptools\msvc9_support.py&#8221;, line 52, in query_vcvarsall<br />
return unpatched[&#8216;query_vcvarsall&#8217;](version, *args, **kwargs)<br />
File &#8220;D:\Python343\Lib\distutils\msvc9compiler.py&#8221;, line 287, in query_vcvarsall<br />
raise ValueError(str(list(result.keys())))<br />
ValueError: [&#8216;lib&#8217;, &#8216;path&#8217;, &#8216;include&#8217;]</p></blockquote>
</li>
<li>각을 보니 windows sdk command shell 에서 진행을 해야 할 듯. 일단 나는 windows sdk 7.1 을 설치했으니 &#8220;Windows SDK 7.1 Command Prompt&#8221; 를 실행하여 다시 13을 실행 -&gt; 설치됨</li>
<li>examples/boids.py 를 실행하면 끝.</li>
</ol>
<div class='footnotes' id='footnotes-612'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-612-1'> https://github.com/kernel0/owyl.git <span class='footnotereverse'><a href='#fnref-612-1'>&#8617;</a></span></li>
<li id='fn-612-2'> pyglet: a cross-platform windowing and multimedia library for Python <span class='footnotereverse'><a href='#fnref-612-2'>&#8617;</a></span></li>
<li id='fn-612-3'> cocos : a 2D framework for games and multimedia <span class='footnotereverse'><a href='#fnref-612-3'>&#8617;</a></span></li>
<li id='fn-612-4'> rabbyt : A fast 2D sprite engine using OpenGL <span class='footnotereverse'><a href='#fnref-612-4'>&#8617;</a></span></li>
<li id='fn-612-5'> rabbyt website : http://arcticpaint.com/projects/rabbyt/ <span class='footnotereverse'><a href='#fnref-612-5'>&#8617;</a></span></li>
</ol>
</div>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=612</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">612</post-id>	</item>
		<item>
		<title>wordpress 문제인지&#8230;</title>
		<link>http://kastalien.org/wp/?p=609</link>
				<comments>http://kastalien.org/wp/?p=609#respond</comments>
				<pubDate>Tue, 20 Oct 2015 09:06:13 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[미분류]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=609</guid>
				<description><![CDATA[3월부터 rss 갱신이 작동하지 않았네 =_=;;; 구독하는 분들 죄송합니다!]]></description>
								<content:encoded><![CDATA[<p>3월부터 rss 갱신이 작동하지 않았네 =_=;;; 구독하는 분들 죄송합니다!</p>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=609</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">609</post-id>	</item>
		<item>
		<title>[couchbase] couchbase server 4.0 업그레이드. 문제와 해결</title>
		<link>http://kastalien.org/wp/?p=605</link>
				<comments>http://kastalien.org/wp/?p=605#respond</comments>
				<pubDate>Mon, 19 Oct 2015 05:59:53 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[couchbase]]></category>
		<category><![CDATA[cbq]]></category>
		<category><![CDATA[cbq-engine]]></category>
		<category><![CDATA[gsi]]></category>
		<category><![CDATA[indexer]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=605</guid>
				<description><![CDATA[3.0.1 을 쓰다가 4.0 으로 업그레이드했다. 새로 추가된 N1QL 기능을 써보려고 cbq 를 실행했는데 cbq-engine 에서 쓰는 8093 포트가 열려있지 않았다. cbq-engine이 일단 떠 있지 않아서 로 띄우고 cbq 로 접속해서 test query 를 날렸는데 primary index를 만들어야 할 수 있다고 한다. primary 인덱스를 만드려면 아래와 같이 실행해야 한다. 하지만 &#8220;Indexer not implemented GSI may &#8230; <a href="http://kastalien.org/wp/?p=605" class="more-link"><span class="screen-reader-text">[couchbase] couchbase server 4.0 업그레이드. 문제와 해결</span> 더보기</a>]]></description>
								<content:encoded><![CDATA[<p>3.0.1 을 쓰다가 4.0 으로 업그레이드했다. 새로 추가된 N1QL 기능을 써보려고 cbq 를 실행했는데 cbq-engine 에서 쓰는 8093 포트가 열려있지 않았다. cbq-engine이 일단 떠 있지 않아서</p>
<pre class="brush: bash; title: ; notranslate">
cbq-engine -datastore &quot;http://xxxx:8091/&quot;
</pre>
<p>로 띄우고 cbq 로 접속해서 test query 를 날렸는데 primary index를 만들어야 할 수 있다고 한다.</p>
<p>primary 인덱스를 만드려면 아래와 같이 실행해야 한다.</p>
<pre class="brush: bash; title: ; notranslate">
create primary index on default using GSI;
</pre>
<p>하지만 &#8220;Indexer not implemented GSI may not be enabled&#8221; 에러만 출력하고 index를 못 만들더라. 물론, 아래와 같이 view 를 이용해서 만들 수도 있는데, GSI(Global Secondary index)를 쓰는게 n1ql의 default 이고 문제가 뭔지도 알아보긴 해야 해서 계속 도전했다.</p>
<pre class="brush: bash; title: ; notranslate">
create primary index on default using view;
</pre>
<p>온갖 삽질(CBAUTH 어쩌구 세팅부터&#8230;결국은 다 필요없던것이었지만) 끝에 indexer 띄웠으나, index는 생성이 안되더라.</p>
<p>web console의 server nodes의 services 칼럼에서 index, query 항목이 보이는 게 정상이라고 하고, indexer 나 cbq-engine 은 수동으로 띄우는게 기본이 아니라는 글을 봐서 결국에는 3.0.1을 언인스톨하고 4.0.0 을 새로 설치하였다. windows task manager의 process 탭에서 설치한 후에 indexer.exe 와 cbq-engine.exe 가 떠 있는게 잘보인다. (3.0에서 마이그레이션할 때 안뜨는 건 버그인가보다.)</p>
<p>standalone 환경에서 문제가 없길래 팀 개발환경에 적용했다. 총 3대의 couchbase를 밀고 다시 설치하였다. 앞에서처럼 indexer와 cbq-engine 까지는 잘 뜨는데 index 만드는 부분에서 timeout으로 계속 에러가 발생했다. (select 해보면 Primary index #primary not online. 라고 나오기도 함) web console의 index 항목에 가보니 &#8220;We are having troubles communicating to the indexer process. The information might be stale.&#8221; 라고 경고가 나오는 걸 보고 indexer.log 파일을 기웃거렸다. 몇가지 못보던 포트가 나오길래 검색을 조금 했더니 질문하고 자답한 사람이 있었다. <strong>9101-9105, 9998, 9999 </strong>포트가 새로 추가되었으니 방화벽에서 열어야 한다고 한다.</p>
<p>포트 모두 열고 나서 모두 작동하는 것을 확인함.</p>
<p>결론 : 나야 라이브 환경은 아니라서 bucket 다 밀고 4.0으로 업그레이드했는데, 4.0으로 업그레이드 하려는 분들은 index, query 서비스 설치와 bucket 데이터 문제없이 할 수 있도록 잘 조치하시길. couchbase 이놈들 추가로 필요한 포트는 문서화를 하던지 셋업 마지막에 알려주던지 해야지..아놔&#8230;</p>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=605</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">605</post-id>	</item>
		<item>
		<title>[python] python 2.7.9가 windows server 2008 R2 에 설치가 안되는 문제</title>
		<link>http://kastalien.org/wp/?p=598</link>
				<comments>http://kastalien.org/wp/?p=598#respond</comments>
				<pubDate>Tue, 11 Aug 2015 07:20:43 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[2.7.9]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[pip]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=598</guid>
				<description><![CDATA[문제 : 윈도우즈 인스톨러로 설치 시 인스톨러 패키지가 어쩌구 저쩌구 하면서 설치가 안됩니다. 이벤트 뷰어의 어플리케이션 로그에 아래와 같은 메시지가 나옵니다. 아참 이미 파이썬 3.4.3 이 설치 되어 있었어요. Product: Python 2.7.9 &#8212; Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be &#8230; <a href="http://kastalien.org/wp/?p=598" class="more-link"><span class="screen-reader-text">[python] python 2.7.9가 windows server 2008 R2 에 설치가 안되는 문제</span> 더보기</a>]]></description>
								<content:encoded><![CDATA[<p>문제 : 윈도우즈 인스톨러로 설치 시 인스톨러 패키지가 어쩌구 저쩌구 하면서 설치가 안됩니다. 이벤트 뷰어의 어플리케이션 로그에 아래와 같은 메시지가 나옵니다. 아참 이미 파이썬 3.4.3 이 설치 되어 있었어요.</p>
<blockquote><p>Product: Python 2.7.9 &#8212; Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: UpdatePip, location: D:\Python279\python.exe, command: -m ensurepip -U &#8211;default-pip</p></blockquote>
<p>당장 해결법 : 설치 시에 pip 설치 체크를 풀고 진행합니다.</p>
<p>pip 를 설치하는 법 : https://pip.pypa.io/en/latest/installing.html#install-pip 를 참고</p>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=598</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">598</post-id>	</item>
		<item>
		<title>[python-asyncio] libuv, pyuv, aiouv</title>
		<link>http://kastalien.org/wp/?p=588</link>
				<comments>http://kastalien.org/wp/?p=588#respond</comments>
				<pubDate>Mon, 27 Jul 2015 05:34:37 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[aiouv]]></category>
		<category><![CDATA[asyncio]]></category>
		<category><![CDATA[libuv]]></category>
		<category><![CDATA[pyuv]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=588</guid>
				<description><![CDATA[windows python asyncio 에서 기본 내장된 ProactorEventLoop 보다 빠른 event loop 는 없을까 고민하다가 nodejs 기반으로 유명하다는 libuv가 생각났다. python에는 libuv를 기반으로하는 pyuv가 있다. pyuv를 asyncio 에서 사용하려면 aiouv가 필요하다. 이것을 설치해보기로 했다. 업데이트 참고. 요약하자면 소득은 없는데(run_in_executor 로 실행하는 쪽이 ProactorEventLoop보다 눈에 띄게 느리더라. 우리쪽 문제일수도 있다.) windows 에서 설치는 불편했다. 업데이트 2 참고. pip &#8230; <a href="http://kastalien.org/wp/?p=588" class="more-link"><span class="screen-reader-text">[python-asyncio] libuv, pyuv, aiouv</span> 더보기</a>]]></description>
								<content:encoded><![CDATA[<p>windows python asyncio 에서 기본 내장된 ProactorEventLoop 보다 빠른 event loop 는 없을까 고민하다가 nodejs 기반으로 유명하다는 libuv가 생각났다. python에는 libuv를 기반으로하는 pyuv가 있다. pyuv를 asyncio 에서 사용하려면 aiouv가 필요하다. 이것을 설치해보기로 했다.</p>
<p>업데이트 참고. <del>요약하자면 소득은 없는데(run_in_executor 로 실행하는 쪽이 ProactorEventLoop보다 눈에 띄게 느리더라. 우리쪽 문제일수도 있다.) windows 에서 설치는 불편했다.</del></p>
<p>업데이트 2 참고. <del>pip aiouv 설치는 pyuv 가 없다고 하면서 안된다. 뭐 여기까진 괜찮다. pyuv 설치하자.</del><br />
<del> pip 로 pyuv 설치도 안된다. cp949 UnicodeError와 libuv 설치를 하려고 했는데 링킹이 안되니 어쩌고&#8230;아몰랑.  수동 설치 고고!</del></p>
<p><del>python 2.7, windows sdk 7.1 설치가 되었다고 가정하고 진행함. (python2.7은 libuv 빌드에 필요함. libuv 설치 스크립트에 c:\python27 이 하드코딩되어 있으니 python 3를 기본으로 사용하면 웬만하면 python2.7은 c:\python27 에 설치할 것)</del></p>
<p><del>pyuv 빌드 &amp; 설치</del><br />
<del> 1. github 에서 pyuv 소스 받기 https://github.com/saghul/pyuv/archive/v1.x.zip (pip install -d . pyuv 해서 받은 소스는 빌드 시 링킹에러가 발생한다. 같은 버전으로 알고 있는데 왜&#8230;)</del><br />
<del> 2. cmd 열기</del><br />
<del> 3. call &#8220;C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd&#8221; /release /x64</del><br />
<del> 4. python setup.py build_ext &#8211;inplace &#8211;libuv-clean-compile</del><br />
<del> 5. 원하는 venv 환경을 activate 하고 소스 폴더로 돌아온다.</del><br />
<del> 6. python setup.py install 하면 venv 환경에 설치됨</del><br />
<del> 7. 끝</del></p>
<p>aiouv 는 pyuv만 있으면 쉽다.<br />
1. pip install https://github.com/saghul/aiouv/archive/master.zip (pip install aiouv 는 패키지가 없다면서 설치가 안됨 pypi 에서 검색이 되는데 패키지 명이 잘못됐나&#8230; 일단 이슈는 써봤는데&#8230; https://github.com/saghul/aiouv/issues/15)<br />
2. 끝</p>
<p>업데이트 : 1000~ 2000 개의 redis set 하는 테스크로 시간 측정을 해봤을 때 aiouv.EventLoop가 윈도우즈에서 사용할 수 있는 ProactorEventLoop보다 40~60% 정도 빠르다. 테스트 중이다.</p>
<p>업데이트 2 : 언젠가부터 인지는 모르겠지만 windows python 3.4.3 x64 에서 간단히 설치된다. pip install pyuv 하면 된다</p>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=588</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">588</post-id>	</item>
		<item>
		<title>[python] libuv x64 release빌드하는 법</title>
		<link>http://kastalien.org/wp/?p=589</link>
				<comments>http://kastalien.org/wp/?p=589#respond</comments>
				<pubDate>Mon, 27 Jul 2015 03:46:17 +0000</pubDate>
		<dc:creator><![CDATA[minstrel]]></dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[libuv]]></category>
		<category><![CDATA[pyuv]]></category>

		<guid isPermaLink="false">http://kastalien.org/wp/?p=589</guid>
				<description><![CDATA[현재(2015-07-27) pip 에 등록된 pyuv 1.1.0을 빌드하기 위해선 libuv를 수동으로 빌드해야 하더라. pyuv 를 github에서 받아서 빌드하면 따로 libuv 를 빌드할 필요가 없다. 같은 버전인데 무슨차이인지 모르겠음 -_-; libuv 빌드를 하려면 python2.x 가 필요하다. (visual studio sln vcxproj 파일을 python2.x 로 만든다) 1. libuv zip 다운로드 https://github.com/libuv/libuv/archive/v1.x.zip 2. 압축 풀고 3. cmd (command line 으로 &#8230; <a href="http://kastalien.org/wp/?p=589" class="more-link"><span class="screen-reader-text">[python] libuv x64 release빌드하는 법</span> 더보기</a>]]></description>
								<content:encoded><![CDATA[<p>현재(2015-07-27) pip 에 등록된 pyuv 1.1.0을 빌드하기 위해선 libuv를 수동으로 빌드해야 하더라. pyuv 를 github에서 받아서 빌드하면 따로 libuv 를 빌드할 필요가 없다. 같은 버전인데 무슨차이인지 모르겠음 -_-;</p>
<p>libuv 빌드를 하려면 python2.x 가 필요하다. (visual studio sln vcxproj 파일을 python2.x 로 만든다)</p>
<p>1. libuv zip 다운로드 https://github.com/libuv/libuv/archive/v1.x.zip<br />
2. 압축 풀고<br />
3. cmd (command line 으로 git 실행할 수 있어야 하는 상태) 로 해당 폴더 이동 후 vcbuild.bat x64 release 실행<br />
4. 배치파일이 실행되면서 vc project 를 만들어주는 gyp 프로젝트를 다운로드 받는다.<br />
5. 실패 (python2.x 에서 설치하는 사람은 성공할 것임)</p>
<pre class="brush: python; title: ; notranslate">
print 'Error running GYP'
</pre>
<p>6. 아.. 내 default python 이 3.4 다. cmd 에서 set PYTHON=PYTHON_2.X경로를 지정한다 ex) set PYTHON=c:\python27\python.exe<br />
7. 다시 &#8216;vcbuild.bat x64 release&#8217; 실행<br />
8. uv.sln 이 생성됨<br />
9. 이제 libuv 를 빌드하자 (Windows SDK 7.1 이 설치된 것을 가정한다. vs2010을 가정해서 뭔가 하는게 많은거 같다. 속 편하려면 vs2010 설치하자)<br />
10. msbuild /p:PlatformToolset=Windows7.1SDK;Configuration=Release;Platform=x64 uv.sln<br />
13. 끝</p>
]]></content:encoded>
							<wfw:commentRss>http://kastalien.org/wp/?feed=rss2&#038;p=589</wfw:commentRss>
		<slash:comments>0</slash:comments>
						<post-id xmlns="com-wordpress:feed-additions:1">589</post-id>	</item>
	</channel>
</rss>
