No module named 'searchtweets'


#1

Hi,

Im not too familiar with python and searchtweets package. I installed searchtweets package but Im getting following error.

!pip install searchtweets

Collecting searchtweets
Collecting tweet-parser (from searchtweets)
Collecting pyyaml (from searchtweets)
Collecting requests (from searchtweets)
  Using cached https://files.pythonhosted.org/packages/f1/ca/10332a30cb25b627192b4ea272c351bce3ca1091e541245cccbace6051d8/requests-2.20.0-py2.py3-none-any.whl
Collecting idna<2.8,>=2.5 (from requests->searchtweets)
  Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
Collecting urllib3<1.25,>=1.21.1 (from requests->searchtweets)
  Using cached https://files.pythonhosted.org/packages/8c/4b/5cbc4cb46095f369117dcb751821e1bef9dd86a07c968d8757e9204c324c/urllib3-1.24-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests->searchtweets)
  Using cached https://files.pythonhosted.org/packages/56/9d/1d02dd80bc4cd955f98980f28c5ee2200e1209292d5f9e9cc8d030d18655/certifi-2018.10.15-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests->searchtweets)
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Installing collected packages: tweet-parser, pyyaml, idna, urllib3, certifi, chardet, requests, searchtweets
Successfully installed certifi-2018.10.15 chardet-3.0.4 idna-2.7 pyyaml-3.13 requests-2.20.0 searchtweets-1.2.1 tweet-parser-1.13.1 urllib3-1.24

from searchtweets import ResultStream, gen_rule_payload, load_credentials
premium_search_args = load_credentials("~/.twitter_keys.yaml",
yaml_key=“search_tweets_premium”,
env_overwrite=False)

ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-7-1a8baa28f761> in <module>
----> 1 from searchtweets import ResultStream, gen_rule_payload, load_credentials
      2 
      3 
      4 premium_search_args = load_credentials("~/.twitter_keys.yaml",
      5                                        yaml_key="search_tweets_premium",

ModuleNotFoundError: No module named 'searchtweets'

Is there anyone familiar with this problem

Thank you.


#2

Thanks for reaching out here. I was just using the searchtweets Python wrapper this week.

A few things might be going on here:

  1. Usually when I run into issues like this it’s because I’m using a machine where I have Python 2 and 3 installed. You might want to try using this pip3 install searchtweets if you are usng Python 3.

  2. If this doesn’t work you might want to consider using pipenv for this.

  3. You may also want to try installing without the ! so just pip install searchtweets

Thanks for reaching out! Hope this helps, please let us know if you need anything else here.


#3

Thank you. pip3 install searchtweets worked for me.

But then I got this error.

cannot read file .twitter_keys.yaml
Error parsing YAML file; searching for valid environment variables
Account type is not specified and cannot be inferred.
        Please check your credential file, arguments, or environment variables
        for issues. The account type must be 'premium' or 'enterprise'.
        

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-10-8ba2288056a6> in <module>
      4 premium_search_args = load_credentials(".twitter_keys.yaml",
      5                                        yaml_key="search_tweets_premium",
----> 6                                        env_overwrite=False)

~/.local/lib/python3.6/site-packages/searchtweets/credentials.py in load_credentials(filename, account_type, yaml_key, env_overwrite)
    187                    if env_overwrite
    188                    else merge_dicts(env_vars, yaml_vars))
--> 189     parsed_vars = _parse_credentials(merged_vars, account_type=account_type)
    190     return parsed_vars
    191 

~/.local/lib/python3.6/site-packages/searchtweets/credentials.py in _parse_credentials(search_creds, account_type)
     80         """
     81         logger.error(msg)
---> 82         raise KeyError
     83 
     84     try:

KeyError: 


I have ~/.twitter_keys.yaml file in same directory with my code file.

twitter_keys.yaml contains this

search_tweets_premium:
  account_type: premium
  endpoint: https://api.twitter.com/1.1/tweets/search/fullachive/tez.json
  # if you have a bearer token, you can use it below. otherwise, swap the comment marks and use 
  # your app's consumer key/secret - the library will generate and use a bearer token for you. 
  # bearer_token: <A_VERY_LONG_MAGIC_STRING>	
  consumer_key: xxxxxxx
  consumer_secret: xxxxxxxxxxx


#4

By default, this library expects this file at "~/.twitter_keys.yaml"

Try saving the yaml file in your home directory.


#5

If the file is in same directory you can use this syntax:

premium_search_args = load_credentials(filename="twitter_keys.yaml", 
                                       yaml_key="search_tweets_api",
                                      env_overwrite=False)

#6

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.