<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блог Артёма Агасиева: заметки с тегом StarSpace</title>
<link>https://agasiev.com/tags/starspace/</link>
<description>Telegram: @aagasiev</description>
<author>Артём Агасиев</author>
<language>ru</language>
<generator>E2 (v3576; Aegea)</generator>

<itunes:owner>
<itunes:name>Артём Агасиев</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Telegram: @aagasiev</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Ошибка при сборке Python биндинга для библиотеки Facebook StarSpace</title>
<guid isPermaLink="false">78</guid>
<link>https://agasiev.com/all/oshibka-pri-sborke-python-bindinga-dlya-biblioteki-facebook-star/</link>
<pubDate>Tue, 15 Dec 2020 16:45:32 +0300</pubDate>
<author>Артём Агасиев</author>
<comments>https://agasiev.com/all/oshibka-pri-sborke-python-bindinga-dlya-biblioteki-facebook-star/</comments>
<description>
&lt;p&gt;При сборке Python биндинга крутой библиотеки &lt;a href="https://github.com/facebookresearch/StarSpace"&gt;StarSpace&lt;/a&gt; получил такую ошибку:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="python"&gt;
Traceback (most recent call last):
  File "test.py", line 1, in &lt;module&gt;
    import starwrap as sw
ImportError: /www/home/mntlp/Starspace/python/test/starwrap.so: undefined symbol: _Py_ZeroStruct
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Возникает она потому, что я в данный момент работаю под anaconda, а биндинг собрался под другую версию Python. Пофиксить несложно. Открываем CMakeLists.txt и в начала файла, после строки&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="shell"&gt;
project(starspace)
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;устанавливаем пути к библиотекам и инклудам нужного нам питона:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="shell"&gt;
set(PYTHON_LIBRARY "/home/user/anaconda3/lib")
set(PYTHON_INCLUDE_DIR "/home/user/anaconda3/include/python3.6m/")
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;А если работаем под виртуальной средой в anaconda, то вместо предыдущих путей нужно указать путь через нее:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="shell"&gt;
set(PYTHON_LIBRARY "/home/user/anaconda3/envs/env_name/lib")
set(PYTHON_INCLUDE_DIR "/home/user/anaconda3/envs/env_name/include/python3.6m")
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Дальше:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="shell"&gt;
cd ./build
cmake --build .
cd -
cp ./build/starwrap.so ./test
cd test
python3 test.py
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;В общем, все как было в build.sh до возникновения ошибки.&lt;/p&gt;
</description>
</item>


</channel>
</rss>